CREATE TRIGGER [addItemIntoContentStateWhencurrentPlaceOrDestinationChange] ON dbo.contentDetailTable
FOR UPDATE, INSERT
AS
Declare @ID varchar (50)if update(ID)
begin
UPDATE contentDetailTable set contentDetailTable.IDnumber = contentDetailTable.IDnumber +1
end我想实现这样的效果:当一条记录的ID改变时,那条记录的IDnumber自加1
但当一个ID改变后所有记录的IDnumber都加了1
请问该怎么办
FOR UPDATE, INSERT
AS
Declare @ID varchar (50)if update(ID)
begin
UPDATE contentDetailTable set contentDetailTable.IDnumber = contentDetailTable.IDnumber +1
end我想实现这样的效果:当一条记录的ID改变时,那条记录的IDnumber自加1
但当一个ID改变后所有记录的IDnumber都加了1
请问该怎么办
FOR UPDATE, INSERT
AS
if update(ID)
begin
UPDATE A set A.IDnumber = A.IDnumber +1 From contentDetailTable Inner Join Inserted B On A.ID = B.ID
end
GO
鱼掉了个别名,hehe
-------------
修改下。 :)CREATE TRIGGER [addItemIntoContentStateWhencurrentPlaceOrDestinationChange] ON dbo.contentDetailTable
FOR UPDATE, INSERT
AS
if update(ID)
begin
UPDATE A set A.IDnumber = A.IDnumber + 1 From contentDetailTable A Inner Join Inserted B On A.ID = B.ID
end
GO
谢谢,麻烦问一下,这样是不是等于把表复制了一遍,如果表中的记录有很多,比如1亿条
那效率是不是会很低?
--------
inserted中存儲的是你更新後的數據,兩表關聯,就只會更新你已經被更新的數據。