2010-04-07 103 views
2

我想從數據庫使用.Net返回一些與存儲過程(或函數)相關的數據。 我需要做的第一件事就是從數據庫中獲取存儲過程並將其轉換爲字符串格式。 我需要的信息是:返回的一組列,在SP中使用的表格,從SP調用的存儲過程。在我能想到的時候做這件事的唯一方法就是解析文本並尋找關鍵字匹配。有沒有更好的方法來做到這一點?從.Net獲取存儲過程信息

任何想法?

回答

1

假設你知道,返回的表可能依賴於函數的輸入,所以不會永遠是一個給定存儲過程的單個輸出,但是......

要獲得存儲過程列表,您可以撥打sp_help。然後,您可以使用sp_helptext(其中@objname是存儲過程的名稱)獲取存儲過程的源。

要找到引用的表,列等,你會想要解析SQL腳本 - 你可以自己做這個,或者有更多已建立的項目,例如ANTLR,這些可以簡化你的工作。

+0

感謝@Rowland,sp_heltext看起來非常有幫助。 – Ben 2010-04-07 12:52:33

0

將SPROC作爲文本使用後,可以使用SQL解析器。

有幾個.NET - 請參閱this SO問題的解答(在.NET中解析SQL)。

0

如果您正在使用SQL Server,你也可以嘗試sp_depends將存儲過程

EXEC sp_depends @objname = N'sproc_name' ;