0
MS SQL插入觸發器會因爲返回結果而導致一些問題。有沒有辦法禁用發送的結果?我已經使用'set nocount on',但這似乎並沒有太多...來自插入觸發器的抑制結果
create trigger tr_insert_raw_data
on raw_data
instead of insert
as
begin
set nocount on
declare @query varchar(max);
declare @rev int;
declare @id int;
declare @oldrev int;
declare @contextinfo VARBINARY(128)
select @contextinfo = context_info()
if @contextinfo = 0x00001
begin
insert into raw_data select * from inserted
return
end
select * into #query from inserted
set @id = (select count(distinct id) from raw_data);
set @id += 1;
insert into revisions (username, hostname, ts) values (SYSTEM_USER, HOST_NAME(), GETDATE())
set @rev = (select max(id) from revisions);
select @oldrev = revision_id from inserted;
if @oldrev is null set @[email protected];
select * into #inserted from inserted
update #inserted set revision_id = @rev, id = @id
select * from #inserted
insert into raw_data select * from #inserted
insert into edges (a, b) values (@oldrev, @rev)
end
哦,是的,當然。我有這條線進行調試,並忘記將其刪除。非常感謝! – Max 2012-08-01 03:47:41
很高興我能幫到你。請通過選擇我的帖子作爲正確答案來指出問題的答案。 謝謝,恩喬伊! – Neville 2012-08-01 05:15:38
當然........... – Max 2012-08-01 07:02:07