各位高人们:
麻烦帮我看下我这个触发器呢,为什么老是提示
对象名 'inserted' 无效
呢?百思不得其解.我要完成的功能是截获表中的字段名,以及修改后的新值,然后写入外部文件中.CREATE TRIGGER test ON dbo.student
AFTER INSERT
AS Begin
declare cur cursor for select name from syscolumns where id = (select id from sysobjects where name ='student')
declare @buffer varchar(1000)
declare @tmp sysname
declare @sql nvarchar(1000)
declare @data nvarchar(1000)
select @buffer = '###'
open cur
fetch next from cur into @tmp
while @@fetch_status=0
begin
select @sql = N'select @a='+@tmp+' from inserted';
exec sp_executesql @sql , N'@a sysname output',@data output;
print @sql
print @data
select @buffer = @buffer + convert(varchar , @tmp) +'###' +@data +'###'
fetch next from cur into @tmp
end
close cur
deallocate cur
exec SetFileName 'd:\mybuffer.txt';
exec WriteBuffer @bufferend;
麻烦帮我看下我这个触发器呢,为什么老是提示
对象名 'inserted' 无效
呢?百思不得其解.我要完成的功能是截获表中的字段名,以及修改后的新值,然后写入外部文件中.CREATE TRIGGER test ON dbo.student
AFTER INSERT
AS Begin
declare cur cursor for select name from syscolumns where id = (select id from sysobjects where name ='student')
declare @buffer varchar(1000)
declare @tmp sysname
declare @sql nvarchar(1000)
declare @data nvarchar(1000)
select @buffer = '###'
open cur
fetch next from cur into @tmp
while @@fetch_status=0
begin
select @sql = N'select @a='+@tmp+' from inserted';
exec sp_executesql @sql , N'@a sysname output',@data output;
print @sql
print @data
select @buffer = @buffer + convert(varchar , @tmp) +'###' +@data +'###'
fetch next from cur into @tmp
end
close cur
deallocate cur
exec SetFileName 'd:\mybuffer.txt';
exec WriteBuffer @bufferend;
AFTER INSERT
AS Begin
select * into tmp from inserted
declare cur cursor for select name from syscolumns where id = (select id from sysobjects where name ='student')
declare @buffer varchar(1000)
declare @tmp sysname
declare @sql nvarchar(1000)
declare @data nvarchar(1000)
select @buffer = '###'
open cur
fetch next from cur into @tmp
while @@fetch_status=0
begin
select @sql = N'select @a='+@tmp+' from tmp ;
exec sp_executesql @sql , N'@a sysname output',@data output;
print @sql
print @data
select @buffer = @buffer + convert(varchar , @tmp) +'###' +@data +'###'
fetch next from cur into @tmp
end
close cur
deallocate cur
exec SetFileName 'd:\mybuffer.txt';
exec WriteBuffer @buffer
drop table tmp
end;