我正在实现而不是更新SQL-server中的触发器,想要更新所有字段而不需要缓存INSERTED表中的值,然后设置它到UPDATE查询中的字段..我该如何做到这一点?!如何动态更新所有字段而不是更新触发器SQL Server
CREATE TRIGGER trg_Instead_updTable1 ON dbo.Table1
INSTEAD OF UPDATE
AS
BEGIN
IF (UPDATE(ID))
RAISERROR ('It is not allowed to update a Table1.ID', 16, 1)
ELSE
BEGIN
UPDATE dbo.Table1
SET * = (SELECT * FROM INSERTED JOIN DELETED ON INSERTED.ID = DELETED.ID)
END
END
你到底在做什么? “INSTEAD OF UPDATE”触发器通常只用于完全绕过正常更新逻辑并完全自定义的情况。看起来你实际上需要正常的更新逻辑。 – mroach
旁注:严重程度为16的'raiserror'不会阻止更新。如果您希望更新实际取消,则需要添加'回滚事务'。 – mroach
@ mroach我想拒绝ID的更新并接受任何其他更新..我知道这些代码没有显示,我只是试图访问正常的更新值,然后将我的代码写入。 对不起,如果它以某种方式模糊 –