怎样获取某个数据库的所有存储过程SQL语句

数据库 SQL Server
最近公司做了一个项目,并且该项目目前已投入使用。现在数据库挂在客户的服务器上。由于还有一部分功能不是很完善,需要经常更新他们的存储过程。

最近公司做了一个项目,并且该项目目前已投入使用。现在数据库挂在客户的服务器上。由于还有一部分功能不是很完善,需要经常更新他们的存储过程。

由于更新的存储过程有些多,而且到后来经常不知道哪些存储过程是 已经修改过的,哪些是新增加的。我就想到了一个法子。那就是以文本方式获取我本地服务器上的所有存储过程,然后执行文本统一更新至客户服务器上。

具体实现如下,如下语句执行后,会在查询分析器执行消息中显示执行数据库的所有存储过程源码,直接复制保存文本即可。

  1. declare @proc_text varchar(max)  
  2. DECLARE get_proc_text_cursor CURSOR FOR 
  3. SELECT  'if object_id(N'''+ [name] +''') is not null drop proc ' + [name] +  CHAR(10) +  CHAR(13)  +  '  GO '  +  CHAR(10) +  CHAR(13) + definition + CHAR(10)  + CHAR(13) +' GO'   
  4. FROM sys.sql_modules  
  5. inner join sysobjects  on sys.sql_modules.object_id = sysobjects.id  and type='p' 
  6.  
  7. OPEN get_proc_text_cursor  
  8.  
  9. FETCH NEXT FROM get_proc_text_cursor  
  10. INTO @proc_text  
  11.  
  12. WHILE @@FETCH_STATUS = 0  
  13. BEGIN 
  14.  
  15. print @proc_text  
  16.     FETCH NEXT FROM get_proc_text_cursor  
  17.     INTO @proc_text  
  18. END 
  19. CLOSE get_proc_text_cursor  
  20. DEALLOCATE get_proc_text_cursor 

【编辑推荐】

 

  1. 淘宝海量数据库之克服随机IO难题
  2. 数据库如何抵抗随机IO的问题、方法与现实
  3. 一步一步设计你的数据库之不可轻视的需求分析
  4. 养成一个SQL好习惯带来一笔大财富

 

责任编辑:艾婧 来源: 利军的博客
相关推荐

2010-09-02 11:24:45

SQL删除

2010-09-06 11:05:05

SQL SERVER语句

2010-09-25 15:37:38

SQL语句

2010-09-03 14:14:16

SQL删除

2010-09-14 10:47:45

sql server存

2011-07-13 16:19:54

存储过程SQL Server数

2011-09-01 14:00:11

SQL Server 存储过程显示表结构

2010-09-07 15:12:25

SQL语句优化

2010-04-16 13:53:23

Oracle数据库

2011-08-15 15:53:51

SQL Server数批量操作

2011-07-28 14:31:47

SQL Server数存储过程

2011-08-29 10:55:03

SQL Server分页存储过程优化效率分

2009-11-05 18:07:33

Oracle导出sql

2010-09-07 11:09:33

SQL语句

2011-07-19 15:18:46

存储过程sql语句

2010-06-28 13:45:16

SQL Server

2021-12-26 23:06:14

SQL数据库程序员

2021-12-22 23:58:16

SQL数据库语法

2009-03-09 17:46:16

ASP.NETSQLOracle

2010-09-10 14:09:23

点赞
收藏

51CTO技术栈公众号