如何使用c#检索存储过程?

时间:2011-05-20 09:02:40

标签: c# .net sql-server-2008

是否可以使用c#检索stored procedure

我需要做的是我必须在数据库中搜索特定的存储过程名称,如果该存储过程可用,则意味着我必须检索该存储过程并写入文本文件。

我不知道如何检索存储过程。

有任何建议吗?

编辑:我使用SELECT NAME from SYS.PROCEDURES检索了存储过程名称 我不知道如何检索那些存储过程

4 个答案:

答案 0 :(得分:3)

你可以写一个程序

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

答案 1 :(得分: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");

答案 2 :(得分:1)

如果SQLServer:http://msdn.microsoft.com/en-us/library/ms345443(v=sql.90).aspx 我猜你可以执行那个sql语句并将返回值写入你的文本文件。

答案 3 :(得分:1)

针对sys.syscomments执行查询。根据{{​​3}},它包含数据库中每个视图,规则,默认值,触发器,CHECK约束,DEFAULT约束和存储过程的条目。 text列包含原始SQL定义语句。