我使用数据库脚本检查存储过程是否存在,然后删除它然后创建它。
以下哪项对于检查和删除 SP 更有效
选项 1
IF EXISTS(SELECT * FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[myStoredProc]',N'P'))
DROP PROCEDURE dbo.myStoredProc;
选项 2
IF OBJECT_ID (N'dbo. myStoredProc',N'P') IS NOT NULL
DROP PROCEDURE dbo.myStoredProc;
由于显而易见的原因,我决定使用第二个,我有什么理由应该选择第一个吗
最佳答案
风向变了。 MSDN 的当前策略是应该使用 sys.objects 而不是 INFORMATION_SCHEMA View ,因为 sys View 比后者包含更多信息。
关于sql - object_id() 与 sys.objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/796356/