2011-05-20 33 views
1

是否有可能使用c#檢索stored procedure如何使用c#檢索存儲過程?

我需要做的是我在數據庫中搜索特定的存儲過程的名稱,如果該存儲過程可意味着我必須檢索存儲過程,並記錄到一個文本文件..

我不知道如何檢索存儲過程。

有何建議?

編輯:我已經檢索使用SELECT NAME from SYS.PROCEDURES 存儲過程的名稱,我不知道如何檢索這些存儲過程

+1

您正在使用哪種類型的數據庫,以及訪問它的方式(ADO.Net EF,Linq-to-SQL類,SQL驅動程序等) – 2011-05-20 09:05:38

+0

Sqlserver ...... – bala3569 2011-05-20 09:07:51

回答

2

http://databases.aspfaq.com/database/how-do-i-find-a-stored-procedure-containing-text.html

然後,只需創建的SqlConnection & SqlCommand的正常和執行SQL找出PROC的細節:

SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
    FROM INFORMATION_SCHEMA.ROUTINES 
    WHERE ROUTINE_NAME = @YourDesiredStoredProc; 
    AND ROUTINE_TYPE='PROCEDURE' 

C#:

// details is a custom class you would use to hold the details of the proc :) 
// Boring connection stuff 
if(reader.Read()) 
{ 
    this.details = new StoredProcedure(reader.GetString(0), reader.GetString(1); 
} 
else 
{ 
    throw new ArgumentException("Procedure does not exist"); 
} 

// Close boring connection stuff. 

this.details.Write("your_file_name"); 
3

,你可以只寫一個程序

select Column1,Column2 from sys.procedures where name='yourProcName' 
1

sys.syscomments執行您的查詢。根據MDSN page,它包含數據庫中每個視圖,規則,缺省值,觸發器,CHECK約束,DEFAULT約束和存儲過程的條目。文本列包含原始的SQL定義語句。