[英]How do I get the content of a SQL Stored Procedure in Powershell?
我很討厭在樹狀視圖中探索代碼和數據庫結構,因此我更喜歡使用Powershell之類的東西。 我需要在SQL中進行的大多數工作都在探索中,即查看表具有哪些列或特定存儲過程具有什么功能。
查看表列就像訪問表的columns目錄一樣容易,但是如何獲取存儲過程的內容呢?
如果您想在Sql Server 2008上運行它,那么這里有一個Cmdlet可以幫助您。
如果您使用的是Sql Server 2005,那么這里是一個包含腳本的頁面來幫助您解決此問題。
[EDIT]您可以使用SP sp_helptext查看所需存儲過程的內容。
它們的存儲過程文本位於數據字典表sys.sql_modules.
順便說一句, 這個Stackoverflow帖子有一個數據字典逆向工程腳本,該腳本(除其他外)從該表中獲取視圖定義的文本-逆向工程sproc定義的工作原理幾乎相同。
檢索存儲過程的程序文本的最小腳本如下所示:
select m.definition
from sys.objects o
join sys.sql_modules m
on o.object_id = m.object_id
join sys.schemas s
on s.schema_id = o.schema_id
where s.name = 'foo' -- Schema name
and o.name = 'bar' -- Sproc name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.