簡體   English   中英

SSMS:如何在不編寫腳本的情況下查看存儲過程/視圖/功能?

[英]SSMS: How to view a stored procedure/view/function without scripting?

我想查看存儲過程,視圖或用戶定義函數的定義。

在SQL Server Management Studio 2005中,我發現這樣做的唯一方法是:

  1. 右鍵點擊
  2. 腳本存儲過程為
  3. 更改為
  4. 新查詢編輯器窗口
  5. 轉到1

我不想編寫腳本,我想看看它。

我今天在SSMS中的任務是快速瀏覽存儲過程,找到我感興趣的存儲過程。我已經在Windows XP模式下加載了Enterprise Manager(MMC管理單元無法在64位上正常運行),並且我的工作容易得多

  1. 按下Enter
  2. 轉到1

我試圖找到一種查看存儲過程的方法-我對編寫腳本不感興趣。

我做了一些谷歌快速搜索,發現了這一點

從網站復制和粘貼:

-- Get Stored Procedure Content 
--    Name = Stored Procedure Name. 
--    Colid = Multiple lines, their sequence. 
SELECT text 
FROM syscomments 
WHERE id = (SELECT id FROM sysobjects WHERE name = '{0}') 
ORDER BY colid 

根據信息的位置,您是否嘗試過對它們進行過濾以“找到我感興趣的”?

篩選存儲過程

SELECT text
FROM syscomments c
INNER JOIN sysobjects o
ON o.id = c.id
WHERE o.type = 'P'
and o.Name = '{0}'
FOR XML PATH('')
exec sp_helptext N'<stored proc name>'

例:

exec sp_helptext N'mydatabase.dbo.myStoredProc'

這將顯示該過程的所有行,而無需將GUI操縱到sp。

我在SQL Server Management Studio 2012中找到了預覽存儲功能的解決方案。這是非程序員解決方案:)

  1. 在對象資源管理器中找到選定的函數。
  2. 單擊鼠標右鍵。
  3. 選擇修改。
  4. 顯示功能預覽。 您可以將其復制到NotePad ++並進行分析。

我希望這會有所幫助。

使用syscomments有一個潛在的問題:將大過程分成幾行,有時將重要的標識符分為兩部分。 喜歡:

第1行: ...非常重要

第2行: ntifier .....

因此,如果您正在尋找非常重要的標識符 -您將永遠找不到。 (例如-尋找它的所有引用)

當我尋找某些東西時,這非常重要-我生成所有對象的腳本並使用諸如Notepad ++或Visual Studio之類的東西導航到那里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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