也许把舌头按照数据库操作的思想理顺了,就不是那个意思了。不过还是将就你一下。create trigger myTrigger on myTable instead of insert as declare @t table(row int identity,myTableKey) declare @m int set @m=(select max(www) from myTable) set @m=isnull(@m,0) insert @t(myTableKey) select myTableKey from inserted insert myTable(...) select t.row+@m www,....其它来自i的字段... from @t t,inserted i
如果你的业务流程就是有那样的要求,那么应该是这样:create trigger myTrigger on myTable after insert as if @@rowcount<>1 begin raiserror('不允许同时插入多条记录',16,1) rollback transaction return end
declare @t table(row int identity,myTableKey)
declare @m int
set @m=(select max(www) from myTable)
set @m=isnull(@m,0)
insert @t(myTableKey) select myTableKey from inserted
insert myTable(...) select t.row+@m www,....其它来自i的字段... from @t t,inserted i
if @@rowcount<>1
begin
raiserror('不允许同时插入多条记录',16,1)
rollback transaction
return
end