我有一個數據庫,說database_Employee
有2個表,record
和salary
。 現在這兩個表都有一列EmpId
。如何表列連接同一數據庫的
我想,當我更新(或增加)在record
表EmpId
值,那麼salary
EmpId
列應自動獲得的值(我在的tb1
EmpId
添加)。
我使用Visual Studio 2010,.NET Framework 4.0中,SQL Server Express的。
如果我的問題是不明確的,讓我知道。
我有一個數據庫,說database_Employee
有2個表,record
和salary
。 現在這兩個表都有一列EmpId
。如何表列連接同一數據庫的
我想,當我更新(或增加)在record
表EmpId
值,那麼salary
EmpId
列應自動獲得的值(我在的tb1
EmpId
添加)。
我使用Visual Studio 2010,.NET Framework 4.0中,SQL Server Express的。
如果我的問題是不明確的,讓我知道。
這樣的事情,要保持同步兩個表的值,你應該想想觸發器。他們會進入SQL服務器層。由於似乎沒有任何與此同步相關的業務規則,觸發器將確保將數據從一個表複製到下一個表,而不管程序如何。
感謝您的答覆布賴恩....我一直在尋找同樣的。經過一些Google觸發器搜索後,我得到了解決方案。 – Sandy
我真的不知道你想實現什麼,但:
的辦法是設置一個插入/更新/在桌子上「記錄」,從而在表更改值DB刪除觸發器「薪水」。
另一種選擇是使用存儲procudure的更新/插入...在存儲過程中可以根據需要訪問這兩個表...
感謝Yahia的回覆,實際上我希望我的數據庫中的2個表的列在更改某列時同步。我已經建議你在插入/更新/刪除時更新兩列。但我正在尋找一個同步功能。 – Sandy
你不應該這樣做。如果EmpId
可以更改,則應在record
中爲數據庫創建一個新的Id
列。然後在salary
中有一個外鍵列,其中引用了record.Id
。這種方式salary
不需要EmpId
。如果您想獲得某個salary
列的EmpId
列,請加入Id
列。如果你想改變EmpId
,只需更改它在record
,這就夠了。
這裏假設你有一個很好的理由來保持桌分開。另一種選擇是將它們組合成一個表格。
編輯:
基於這個答案評論(這使它成爲一個完全不同的問題,我認爲):
如果像你說的,經理創建Details
行和之後,HR增加了他的Accounts
數據,那麼就沒有任何理由在創建Details
行創建Accounts
行。 HR首次設置帳戶數據時創建該行。
另一種解決方案(已經被人提出的)是合併兩個表。如果他們之間始終有1:關係,則不需要將數據保存在不同的表中。如果您只想看一部分數據,則可以創建視圖。
又一解決方案,其中最接近你的要求(但未必是最好的選擇)是使用觸發器。當一行插入Details
表中時,會觸發一個觸發器,並在Accounts
表中創建一行。
您在表SALARY中插入一行,與表RECORD相同。系統(.net || db)應該如何知道它必須在SALARY中插入一行。只是一個提示:也許你不需要SALARY表,它似乎是1:1的關係,以記錄... – home