2012-02-21 38 views
0

我有一个触发器,我想从存储过程中将其启动。我使用MS访问,当我从MS访问运行触发它给我一个错误消息(ODBC)。我想我不能使用ms访问创建触发器。这是我的触发器:使用存储过程创建触发器

IF EXISTS 
(SELECT name 
FROM sys.objects 
WHERE name = 'UpdateComments' AND type = 'TR') 
DROP TRIGGER tblEmailHdr_abenit01.UpdateComments; 
GO 
CREATE TRIGGER UpdateComments 
ON tblEmailHdr_abenit01 
AFTER Update 
AS 
IF (UPDATE (Comments)) BEGIN Update ttblEmailHdr_abenit01 
Set UpdateComm = GetDate() 
END; 
GO 

这是我怎么一直在试图创建存储过程的触发器,但我得到以下错误味精的,当我尝试创建存储过程:

存储过程:

CREATE PROCEDURE dbo.SP_AS_tblEmailHdr_Trig (@UserID as varchar(10)) 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
--SET NOCOUNT ON; 

-- Insert statements for procedure here 
Declare @UserTable Varchar(50) 
Declare @UserTable2 Varchar(50) 

Set @UserTable = 'tblEmailHdr_' + @UserID ; 
Set @UserTable2 = 'tblEmailHdr_' + @UserID + '.UpdateComments' ; 

IF EXISTS 
(SELECT name 
FROM sys.objects 
WHERE name = 'UpdateComments' AND type = 'TR') DROP TRIGGER @UserTable2 

GO 
CREATE TRIGGER UpdateComments 
ON @UserTable 
AFTER UPDATE 
AS 
IF (UPDATE (Comments)) 
BEGIN 
    --RAISERROR (50009, 16, 10) 
    Update @UserTable 
    Set UpdatedComm = GetDate() 
END 
GO 

END 

GO 

错误味精,我得到:

Msg 102, Level 15, State 1, Procedure SP_AS_tblEmailHdr_Trig, Line 23 
Incorrect syntax near '@UserTable2'. 
Msg 102, Level 15, State 1, Procedure UpdateComments, Line 2 
Incorrect syntax near '@UserTable'. 
Msg 1087, Level 15, State 2, Procedure UpdateComments, Line 8 
Must declare the table variable "@UserTable". 
Msg 102, Level 15, State 1, Line 2 
Incorrect syntax near 'END'. 
+0

从SP – Vikram 2012-02-21 01:34:21

+0

@Vikram内取出GO' GO'可能会阻止程序被创建,但它仍然不会导致触发器被执行,因为OP似乎需要。 – Yuck 2012-02-21 01:35:28

+0

@Yuck:你说得对。触发器会自动执行..但我认为他正在尝试创建一个。 – Vikram 2012-02-21 01:39:29

回答

0

从insid删除所有GO语句e程序。

0

创建过程亲(参数) 作为 开始 申报@trigs为nvarchar(最大) DECLARE @trip为nvarchar(最大) 组@的Trig =” 创建dbo.employee 触发三嵌件 作为 SELECT * FROM插入 去” 组@跳闸= '降触发三'

EXEC sp_executesql的@trigs 插入到雇员值(参数) EXEC sp_executesql的@trip 端

高管亲PARAM 如: EXEC亲80, 'AAA', 'AAS',25000 '2013年2月1日', '它'