怎樣獲取某個數據庫的所有存儲過程SQL語句
作者:利軍
最近公司做了一個項目,并且該項目目前已投入使用。現在數據庫掛在客戶的服務器上。由于還有一部分功能不是很完善,需要經常更新他們的存儲過程。
最近公司做了一個項目,并且該項目目前已投入使用。現在數據庫掛在客戶的服務器上。由于還有一部分功能不是很完善,需要經常更新他們的存儲過程。
由于更新的存儲過程有些多,而且到后來經常不知道哪些存儲過程是 已經修改過的,哪些是新增加的。我就想到了一個法子。那就是以文本方式獲取我本地服務器上的所有存儲過程,然后執行文本統一更新至客戶服務器上。
具體實現如下,如下語句執行后,會在查詢分析器執行消息中顯示執行數據庫的所有存儲過程源碼,直接復制保存文本即可。
- declare @proc_text varchar(max)
- DECLARE get_proc_text_cursor CURSOR FOR
- 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'
- FROM sys.sql_modules
- inner join sysobjects on sys.sql_modules.object_id = sysobjects.id and type='p'
- OPEN get_proc_text_cursor
- FETCH NEXT FROM get_proc_text_cursor
- INTO @proc_text
- WHILE @@FETCH_STATUS = 0
- BEGIN
- print @proc_text
- FETCH NEXT FROM get_proc_text_cursor
- INTO @proc_text
- END
- CLOSE get_proc_text_cursor
- DEALLOCATE get_proc_text_cursor
【編輯推薦】
責任編輯:艾婧
來源:
利軍的博客