触发器问题
我在表slips上写了一个这样的触发器,可我update触发触发器时出现如下错误:ODBC error 208 (42S02) 对象名 'slips_memo' 无效。下面是我的触发器源代码,大家帮我看看是什么原因出现这个错误,谢谢!
CREATE TRIGGER send_slip_messages ON slips
FOR update
AS
declare @mail varchar(255)
declare @sub varchar(255)
declare @mes varchar(255)
declare @mes1 varchar(255)
declare @id int
declare @o_devid integer
declare @n_devid integer
declare @o_qaid integer
declare @n_qaid integer
declare @n_devname varchar(15)
declare @o_devname varchar(15)
declare @qaname varchar(15)
declare @o_qaname varchar(15)
declare @name varchar(15)
declare @title varchar(255)
declare @type varchar(255)
declare @prio varchar(15)
declare @problem varchar(255)
declare @source integer
declare @prod_name varchar(50)
declare @mod_name varchar(80)
declare @modid smallint
select @id=slip_id,@n_devid=accepter_id,@source=sour_id,@n_qaid=closer_id,@modid=mod_id from inserted
select @o_devid=accepter_id,@o_qaid=closer_id from deleted
if update(closer_id) and @source<>3 and @o_qaid<>@n_qaid
begin
select @mail=qa_mail,@qaname=qa_name from qa where qa_id=@n_qaid
select @o_qaname=qa_name from qa where qa_id=@o_qaid
select @name=log_name from work_login where qa_id=@n_qaid
select @title=title FROM slips where slip_id=@id
SELECT @type=slip_type.pro_name FROM slips INNER JOIN slip_type ON slips.type_id=slip_type.id where slips.slip_id=@id
SELECT @qaname=qa.qa_name FROM qa INNER JOIN slips ON qa.qa_id=slips.opener_id where slips.slip_id=@id
SELECT @prio=slip_priority.pri_name FROM slip_priority INNER JOIN slips ON slip_priority.pri_id=slips.priority where slips.slip_id=@id
select @prod_name=product.product_name,@mod_name=module.module_name from product inner join module on product.product_id=module.product_id where module.module_id=@modid
select @sub='Bug由Master转给您确认!'
select @mes1='More Information:http://bug'
select @mes='This mail is to QA '+@qaname+' from qa '+@o_qaname+char(13)+char(13)+'BugID:'+convert(varchar(9),@id)+char(13)+'Product:'+@prod_name+char(13)+'Module:'+@mod_name+char(13)+'Title:'+@title+char(13)+'类型:'+@type+char(13)+'优先级:'+@prio+char(13)+@mes1
select @problem='SELECT 问题描述=convert(varchar(30),trace),slip_memo FROM slips_memo where slip_id='+convert(varchar(9),@id)
exec master..xp_sendmail @recipients=@mail,@subject=@sub,@query=@problem,@message=@mes,@width=180
end
if @n_devid<>@o_devid and @source<>3
begin
select @mail=qa_mail,@n_devname=qa_name from qa where qa_id=@n_devid
select @o_devname=qa_name from qa where qa_id=@o_devid
select @name=log_name from work_login where qa_id=@n_devid
select @title=title FROM slips where slips.slip_id=@id
SELECT @type=slip_type.pro_name FROM slips INNER JOIN slip_type ON slips.type_id=slip_type.id where slips.slip_id=@id
SELECT @qaname=qa.qa_name FROM qa INNER JOIN slips ON qa.qa_id=slips.closer_id where slips.slip_id=@id
SELECT @prio=slip_priority.pri_name FROM slip_priority INNER JOIN slips ON slip_priority.pri_id=slips.priority where slips.slip_id=@id
select @sub='有Bug转给您解决!'
select @mes1='More Information:http://bug'
select @mes='This mail is to DEV '+@n_devname+' from DEV '+@o_devname+char(13)+char(13)+'BugID:'+convert(varchar(9),@id)+char(13)+'Product:'+@prod_name+char(13)+'Module:'+@mod_name+char(13)+'Title:'+@title+char(13)+'类型:'+@type+char(13)+'优先级:'+@prio+char(13)+@mes1
select @problem='SELECT 问题描述=convert(varchar(30),trace),slip_memo FROM slips_memo where slip_id='+convert(varchar(9),@id)
exec master..xp_sendmail @recipients=@mail,@subject=@sub,@query=@problem,@message=@mes,@width=180
end