我有一个表,我需要用插入记录的标识更新列的值。使用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