MSSQL 取出数据库所有的存储过程语句 PROC
2012-07-16 14:24
204 查看
今天接到一项任务,需要将数据库存储过程取出来,并要求取出相对应得存储过程注释。
取出数据库存储过程SQL语句如下:
但是,text字段中有些字符是不需要的。譬如:
写了一个函数,简单处理了一下!将存储过程里面,取出注释部分,即(从索引1开始,到 "CREATE" 字符的索引)。将里面的字符之类的过滤掉,剩下的中文就是注释了。简单的一个思路,实现的比较粗糙。不过,就是一个展示用。无伤大雅......
再加上函数,用SQL语句调用一下。看到结果你会很兴奋。
取出数据库存储过程SQL语句如下:
select o.[name], c.text, c.encrypted, c.number, xtype=convert(nchar(2), o.xtype), datalength(c.text), convert(varbinary(8000), c.text), 0 from dbo.syscomments c, dbo.sysobjects o where o.id = c.id and o.xtype = 'p' and o.[NAME] NOT LIKE 'sp_%' order by name
但是,text字段中有些字符是不需要的。譬如:
-- ============================================= -- 作者: XX -- 创建日期: 2011.5.11 -- 描述: 取得订单信息[public_GetOrderInfo] -- ============================================= CREATE PROCEDURE [dbo].[public_GetOrderInfo] .......只要字符,“取得订单信息”。
写了一个函数,简单处理了一下!将存储过程里面,取出注释部分,即(从索引1开始,到 "CREATE" 字符的索引)。将里面的字符之类的过滤掉,剩下的中文就是注释了。简单的一个思路,实现的比较粗糙。不过,就是一个展示用。无伤大雅......
IF OBJECT_ID('ReplEng') IS NOT NULL DROP FUNCTION ReplEng GO CREATE FUNCTION ReplEng ( @CONTENT VARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @ALLLength INT --总长度 DECLARE @NewWord NVARCHAR(MAX)--新字符串 DECLARE @EndIndex INT --结束字符索引 SET @NewWord='' SET @EndIndex=charindex('create',@CONTENT) --取出CREATE 字符的索引 SET @CONTENT=SUBSTRING(@CONTENT,1,@EndIndex) SET @ALLLength=LEN(@CONTENT) --获取总长度 WHILE(@ALLLength>0) BEGIN DECLARE @LEN INT SET @LEN=0 SET @LEN=DATALENGTH(SUBSTRING(@CONTENT,1,1)) IF(@LEN=2) --如果是中文,叠加字符串 BEGIN SET @NewWord=@NewWord+SUBSTRING(@CONTENT,1,1) END SET @CONTENT=SUBSTRING(@CONTENT,2,LEN(@CONTENT)-1) --替换字符 SET @ALLLength=LEN(@CONTENT) END SET @NewWord=REPLACE(@NewWord,'作者XX创建日期描述','') RETURN @NewWord END go
再加上函数,用SQL语句调用一下。看到结果你会很兴奋。
--存储过程: select [name]+':'+dbo.ReplEng(c.text),c.text, c.encrypted, c.number, xtype=convert(nchar(2), o.xtype), datalength(c.text), convert(varbinary(8000), c.text), 0 from dbo.syscomments c, dbo.sysobjects o where o.id = c.id and o.xtype = 'p' and o.[NAME] NOT LIKE 'sp_%' order by name
相关文章推荐
- 清空数据库所有表,所有存储过程SQL语句
- 删除数据库所有存储过程的SQL语句
- 删除数据库所有存储过程的SQL语句
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 删除数据库中所有存储过程和函数的sql语句
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 删除数据库所有存储过程的SQL语句 转
- 删除数据库所有存储过程的SQL语句
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- 删除数据库所有存储过程的SQL语句
- MSSQL数据库:存储过程实例学习(1)从两个表中取出头两行,然后合并到一个表中
- 利用SQL语句查找某数据库中所有存储过程包含的内容(转)
- 删除数据库所有存储过程的SQL语句
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 一次性删除数据库所有表和所有存储过程 SQL语句
- MsSql数据库存储过程加密解密
- 查询数据库中的所有存储过程语句
- MySQL将某个数据库下的所有表的存储引擎修改为InnoDB类型语句