我有一個表,我需要用插入記錄的標識更新列的值。使用triggerc更新插入的記錄
以下是我寫的觸發器:
CREATE TRIGGER [dbo].[UpdateRecordID]
on [dbo].[Employee]
AFTER INSERT
AS
BEGIN
UPDATE dbo.Employee
SET RecordID = (SELECT EmployeeID FROM INSERTED) WHERE EmployeeID= (SELECT EmployeeID FROM INSERTED)
END
觸發創建成功,但是當我插入記錄表我得到以下錯誤:
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
如果我不」 t將更新語句中的where條件寫入更新語句並寫入觸發器,如下所示:
ALTER TRIGGER [dbo].[UpdateRecordID]
on [dbo].[Employee]
AFTER INSERT
AS
BEGIN
UPDATE dbo.Employee
SET RecordID = (SELECT EmployeeID FROM INSERTED)
END
我得到以下錯誤:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. The statement has been terminated.
什麼是更新記錄,以保持主鍵在另一列,這樣我可以在同一個表中添加更多的記錄,並保持他們相關的最佳實踐?
我可以在使用@@ Identity插入記錄的存儲過程中寫入Update語句,但我想使用觸發器執行相同的操作。
我有點困惑,爲什麼你需要在同一個表中兩次相同的ID? – twoleggedhorse
我需要這樣才能在同一張表中插入另一條記錄,並根據該相同ID在兩條記錄之間建立關係。 – Chatur
擁有關係表不是更好嗎?然後,您可以在記錄之間建立多條鏈接,並且可以強制執行約束條件。 – twoleggedhorse