这是因为触发器的运行方式,基本上它不在查询执行窗口中。一种方法是登录到事件查看器。
Create trigger TestTrigger ontablefortriggerfor insertas鈥揇eclare variable to hold messageDeclare @Msg varchar(8000)鈥揂ssign to message 鈥淎ction/Table Name/Time Date/Fields insertedset @Msg = 鈥業nserted | tablefortrigger | 鈥� + convert(varchar(20), getdate()) + 鈥� | 鈥�+(select convert(varchar(5), track)+ 鈥�, 鈥� + lastname + 鈥�, 鈥� + firstnamefrom inserted)鈥揜aise Error to send to Event Viewerraiserror( 50005, 10, 1, @Msg)
执行此操作的另一种方法是写入文件,这里当然存在权限问题,但是您可以执行以下操作:
Alter trigger TestTrigger ontablefortriggerfor insertasDeclare @Msg varchar(1000)鈥揥ill hold the command to be executed by xp_cmdshellDeclare @CmdString varchar (2000)set @Msg = 鈥業nserted | tablefortrigger | 鈥� + convert(varchar(20), getdate()) + 鈥� 鈥� 鈥�+(select convert(varchar(5), track)+ 鈥�, 鈥� + lastname + 鈥�, 鈥� + firstnamefrom inserted)鈥揜aise Error to send to Event Viewerraiserror( 50005, 10, 1, @Msg)set @CmdString = 鈥榚cho 鈥� + @Msg + 鈥� >> C:logtest.log鈥�鈥搘rite to text fileexec master.dbo.xp_cmdshell @CmdString
可以在这里找到更多信息:http : //www.sql-server-performance.com/2005/log-file-
trigger/



