我有一种情况需要将两个产品表合并为一个,并且需要保留两个id字段。 Id字段是pk和标识列。在插入时我想更新prodId以匹配新插入行的Id。这就是我所拥有的,但我得到一个错误,说我无法在ProductId中插入null。我做错了什么?
ALTER TRIGGER SyncId
ON Product
FOR INSERT
AS
BEGIN
DECLARE @ID INT
SET @ID = (SELECT ID FROM Inserted)
UPDATE Product SET
ProdId = @ID
WHERE
Id = @ID
END
答案 0 :(得分:0)
您可以为INSTEAD OF
创建INSERT
触发器。然后,您必须重新创建实际的INSERT
逻辑。您可能需要一个表格的视图才能让触发器坐下来...我不记得触发器中的INSERT
是否有效且无法立即测试。
此外,您所写的触发器仅在更新单行时才有效。您应该始终编写触发器,以便能够处理INSERTED
和DELETED
表中的多行。