如何在SQL在触发器中获得更新的记录值-像这样: 1 z. h( R% F: L& @CREATE TRIGGER TR_UpdateNew ON Users AFTER UPDATEAS BEGIN SET NOCOUNT ON; EXEC UpdateProfile (SELECT UserId FROM updated AS U);ENDGO这显然不起作用,但你可以看到我想尝试什么。 ! u" A' W. o; V/ o: X1 w * o: [8 \* d3 L% Q解决方案: , q/ ^! p* m- r; H, v4 y" @+ Z 如果您 确定 如果只更新一个值,则可以执行此操作… 6 e' s7 v% |. k5 [# |# {CREATE TRIGGER TR_UpdateNew ON Users AFTER UPDATEAS BEGIN SET NOCOUNT ON; DECLARE @user_id INT SELECT @user_id = inserted.UserID FROM inserted INNER JOIN deleted ON inserted.PrimaryKey = deleted.PrimaryKey -- It's an update if the record is in BOTH inserted AND deleted EXEC UpdateProfile @user_id;ENDGO若能一次更新多个值,则此代码将只处理其中一个。(尽管没有错。 . h& r* x+ s. |如果是游标,可以使用游标或者SQL Server表变量可用于 2008 。 ; V% W+ k0 z8 ^) t或者,更常见的是,只需要StoredProcedure代码移动到触发器。