好贷网好贷款

在触发器的行为中,如何获取触发自己的完整的sql语句? 20CSDN]

发布时间:2016-12-3 14:45:49 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"在触发器的行为中,如何获取触发自己的完整的sql语句? 20CSDN]",主要涉及到在触发器的行为中,如何获取触发自己的完整的sql语句? 20CSDN]方面的内容,对于在触发器的行为中,如何获取触发自己的完整的sql语句? 20CSDN]感兴趣的同学可以参考一下。

rt

得到完整的语句可能不行 DBCC INPUTBUFFER(@@spid) -- sql 2000中只有255字符, 2005中可以用4000字符 fn_get_sql 可以得到完整的语句, 但这个语句是触发器语句, 不是触发它的语句.

--给个例子你研究下 --testtri表结构不重要 --这个触发器取出完整的sql语句,然后检查update,delete语句是否有where部分, --如果没有,则回滚并出错 CREATE trigger tr_testtri on testtri for update,delete as set nocount on create table #t(EvebtType varchar(60),Parameters int,EventInfo varchar(2000)) declare @id varchar(20) set @id=@@spid insert #t exec('DBCC INPUTBUFFER ([email protected]+')') if exists (select 1 from #t where EventInfo not like '%where%') BEGIN    RAISERROR ('删除、修改语句必须写where部分',16, 1)    ROLLBACK TRANSACTION END GO --注意正牌说的 DBCC INPUTBUFFER(@@spid) -- sql 2000中只有255字符, 2005中可以用4000字符

上一篇:数据库连接难题,请各位高人帮忙。谢谢(分不够可以在加) 50qq801221]
下一篇:如何在reporting service 写代码?给DEMO就OK 100CSDN]

相关文章

相关评论