私はこれまで、ストアド プロシージャ展開スクリプトの一部として次のものを使用してきました。
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 ...
オブジェクト ID ルックアップの型を取るオーバーロードについては知りませんでしたOBJECT_ID
。たとえば、次のようになります。
OBJECT_ID(N'[dbo].[SPROC_NAME]', N'P')
そのオーバーロードを使用すると、OBJECTPROPERTY
ルックアップが不要になるようです。
オーバーロードだけを使用してルックアップOBJECT_ID
をドロップすることにマイナス面があるかどうかを知りたいです。OBJECTPROPERTY