我一直使用以下作为存储过程部署脚本的一部分:
IF NOT EXISTS (SELECT * FROM sys.objects O
WHERE O.[object_id] = OBJECT_ID(N'[dbo].[SPROC_NAME]')
AND OBJECTPROPERTY(O.[object_id],N'IsProcedure') = 1)
EXEC('CREATE PROCEDURE [dbo].[SPROC_NAME] AS')
GO
ALTER PROCEDURE [dbo].[SPROC_NAME]
AS
BEGIN ...
我不知道OBJECT_ID
对象 ID 查找需要类型的重载,例如:
OBJECT_ID(N'[dbo].[SPROC_NAME]', N'P')
似乎使用该重载会使OBJECTPROPERTY
查找变得不必要。
我想知道仅使用OBJECT_ID
重载并放弃OBJECTPROPERTY
查找是否有任何不利之处。