怎樣獲取某個數(shù)據(jù)庫的所有存儲過程SQL語句
作者:利軍
最近公司做了一個項目,并且該項目目前已投入使用?,F(xiàn)在數(shù)據(jù)庫掛在客戶的服務(wù)器上。由于還有一部分功能不是很完善,需要經(jīng)常更新他們的存儲過程。
最近公司做了一個項目,并且該項目目前已投入使用?,F(xiàn)在數(shù)據(jù)庫掛在客戶的服務(wù)器上。由于還有一部分功能不是很完善,需要經(jīng)常更新他們的存儲過程。
由于更新的存儲過程有些多,而且到后來經(jīng)常不知道哪些存儲過程是 已經(jīng)修改過的,哪些是新增加的。我就想到了一個法子。那就是以文本方式獲取我本地服務(wù)器上的所有存儲過程,然后執(zhí)行文本統(tǒng)一更新至客戶服務(wù)器上。
具體實現(xiàn)如下,如下語句執(zhí)行后,會在查詢分析器執(zhí)行消息中顯示執(zhí)行數(shù)據(jù)庫的所有存儲過程源碼,直接復(fù)制保存文本即可。
- 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
【編輯推薦】
- 淘寶海量數(shù)據(jù)庫之克服隨機IO難題
- 數(shù)據(jù)庫如何抵抗隨機IO的問題、方法與現(xiàn)實
- 一步一步設(shè)計你的數(shù)據(jù)庫之不可輕視的需求分析
- 養(yǎng)成一個SQL好習慣帶來一筆大財富
責任編輯:艾婧
來源:
利軍的博客