SQL触发器存储过程……-乐乐
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


SQL触发器存储过程……

发表时间:2011/11/23 9:23:14 评论(0) 浏览(7787)  评论 | 加入收藏 | 复制
   
摘 要:在数据库中的每个触发器,存储过程里面的代码让你看的清清楚楚(加密除外)。
正 文:

之所以说是一丝不挂,就是在数据库中的每个触发器,存储过程里面的代码让你看的清清楚楚(加密除外),(怎么写另当别论)。有些朋友估计跟我一样,以前写过的触发器不知道写到哪张表呢,又触发了哪些事件,如果数据库中有成千上百的表挨个去查的话,想必哥们也没那么多时间吧,把下面代码复制到SQL查询分析器里面F5一下,或是Ctrl+E。  OK,想看什么看什么,不废话了,代码如下:

 Select DISTINCT

TOP 100 PERCENT o.xtype,

CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN
 
'主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN'

THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程'

END AS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间,

c.text AS 声明语句

FROM dbo.sysobjects o LEFT OUTER JOIN
 
dbo.syscomments c ON o.id = c.id

Where (o.xtype IN ('X', 'TR', 'C', 'V', 'F', 'IF', 'TF', 'FN', 'P', 'PK')) AND

(OBJECTPROPERTY(o.id, N'IsMSShipped') = 0)

orDER BY CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN

'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图'

WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值'

ELSE '存储过程' END DESC

如果要查看存储过程或是触发器的代码,可以从查询的结果中找到对象名,知道对象名后在查询分析器中按F8,在左侧查找即可,如果是要查看触发器代码,则先查看对象名的声明语句字段内容中是在哪张表上触发的,然后找到那张表,下拉菜单里面就有触发器,打开查看即可。


或者如下更快:-- -- 因为一个存储过程或触发器的每一行代码都是存在一个系统表dbo.syscomments中的text字段的。
-- -- 有个系统存储过程可以试一下.
-- -- sp_helptext   [存储过程名或触发器名]
-- -- 就可以打开相应的所有代码
-- sp_helptext 'trg_sghqi'


另外附加点个人认为是小技巧的操作:比如要用某张表的所有字段名(上百个字段的话一个个写就比较慢)可以用以下方式

在sql查询分析器中按F8,然后在左侧选中相应的表或视图,表的话右键-在新窗口中编写对象脚本-选择。

--然后复制,粘贴内容即可。如果是视图的话直接右健编辑即可选择复制相应的字段再粘贴到相应位置即可。

还有一种方式就是导出表或视图到Excel转化为逗号分隔符的再拷出来,个人认为不如上面的快


Access软件网交流QQ群(群号:198465573)
 
 相关文章
学习报销系统的一些总结1-计时触发器的理解和认识  【yonglz  2008/9/18】
[转帖]触发器FAQ  【郑家龙  2009/2/13】
SQL触发器的使用及语法  【风行  2012/1/17】
sql2005与sql2008存储过程中 变量使用的一处区别  【smeyou  2013/4/3】
SQL Server 存储过程  【杜超-2号  2013/4/13】
常见问答
技术分类
相关资源
文章搜索
关于作者

乐乐

文章分类

文章存档

友情链接