日期:2014-05-18  浏览次数:20533 次

我想在非当前数据库上创建触发器???
CREATE   PROCEDURE   sp_AddTrigger
@FromDbName   varchar(50)
@ToDbName   varchar(50)
AS
declare   @sql   varchar(8000)
IF(@FromDbName   =   'Test ')
Begin
set   @sql   =   'CREATE   TRIGGER   trigger_Insert   ON   '+@FromDbName+ '.dbo.myTest
FOR   INSERT
AS
insert   into   materialrequestContrast   values( ' '333 ' ',getdate()) '
exec(@sql)
End
GO
报错:服务器:   消息   2108,级别   16,状态   1,过程   trigger_Insert,行   4
无法在表   'Test.dbo.myTest '   上创建触发器,因为只能在当前数据库中的表上创建触发器。

请问这个问题怎么解决??

------解决方案--------------------
use test
go
declare @s varchar(4000)
set @s= 'create trigger tritest on test.dbo.tt for insert as update tt set name= ' '1 ' ' '
exec(@s)
原理与换到另一库上执行一样
------解决方案--------------------
只能在当前库中创建触发器