如何使用ADO.Net检查存储过程是否存在?有没有特定的方法来执行此操作(除了执行SELECT OBJECT_ID()并检查结果)?
答案 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'