检查ADO.Net中是否存在存储过程?

时间:2010-04-28 02:55:35

标签: sql-server ado.net

如何使用ADO.Net检查存储过程是否存在?有没有特定的方法来执行此操作(除了执行SELECT OBJECT_ID()并检查结果)?

3 个答案:

答案 0 :(得分:3)

您可以使用INFORMATION_SCHEMA视图,如下所示:

Select *
From INFORMATION_SCHEMA.ROUTINES
Where ROUTINE_NAME = '<your procedure name>'

答案 1 :(得分:0)

如果您在不使用任何SQL 的情况下询问是否有办法检查,那么答案是否定的。

如果你真的想要一个只有代码的解决方案,你可以使用SQL Management Objects,但这只是为了检查存储过程的存在而添加的非常重的依赖 - 它只是在幕后发出SQL反正。

最好只使用SqlCommand

答案 2 :(得分:0)

或者,如果您不关心遵守SQL标准构造(INFORMATION_SCHEMA),则可以使用内置的SQL Server系统目录视图(2005及更高版本)来检查:

SELECT object_id, name
FROM sys.procedures
WHERE name = 'your-procedure-name-here'