簡體   English   中英

如何在Powershell中獲取SQL存儲過程的內容?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM