Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

SQL触发器存储过程……

时 间:2011-11-23 09:23:14
作 者:乐乐   ID:16755  城市:北京
摘 要:在数据库中的每个触发器,存储过程里面的代码让你看的清清楚楚(加密除外)。
正 文:

之所以说是一丝不挂,就是在数据库中的每个触发器,存储过程里面的代码让你看的清清楚楚(加密除外),(怎么写另当别论)。有些朋友估计跟我一样,以前写过的触发器不知道写到哪张表呢,又触发了哪些事件,如果数据库中有成千上百的表挨个去查的话,想必哥们也没那么多时间吧,把下面代码复制到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群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助