读书人

触发器为什么没有运行?解决方法

发布时间: 2012-02-11 09:51:34 作者: rapoo

触发器为什么没有运行?

我在一个存储过程中有以下语句

SET @SQL= 'UPDATE ConsignOutgo2 SET ConsignOutgo2OutgoInvoiceID= '+CAST(@IDTo AS NVARCHAR)
+ ' WHERE (ConsignOutgo2ID IN '+@OutgoInvoiceDetail + ') AND (ConsignOutgo2OutgoInvoiceID=-1) '

EXEC(@SQL)

在表 ConsignOutgo2 有 AFTER INSERT UPDATE DELETE 触发器

但有时存储过程正确运行后触发器没有运行,请指点。

[解决办法]
SET @SQL= 'UPDATE ConsignOutgo2 SET ConsignOutgo2OutgoInvoiceID= ' ' '+CAST(@IDTo AS NVARCHAR)
+ ' ' ' WHERE (ConsignOutgo2ID IN ' ' '+@OutgoInvoiceDetail + ' ' ') AND (ConsignOutgo2OutgoInvoiceID=-1) '

EXEC(@SQL)
[解决办法]
1.查下表中的,定代有行UPDATE。

另外,查下,表中是否有足件的

2.查下UPDATE器的代,保有。
[解决办法]
你入的是不是似 '1,2,3 ' 格式的,如果是的,可以不需要使用SQL句,可以改用CharIndex,也可以避免SQL句的嘛。

UPDATE ConsignOutgo2 SET ConsignOutgo2OutgoInvoiceID= @IDTo
WHERE (CharIndex( ', ' + Cast(ConsignOutgo2ID As Varchar) + ', ', ', ' + @OutgoInvoiceDetail + ', ') > 0 AND (ConsignOutgo2OutgoInvoiceID=-1

读书人网 >SQL Server

热点推荐