奇妙な問題があります。プロシージャが存在する場合にのみ、プロシージャを削除しようとしています。次のコードがあります。
IF OBJECT_ID(N'dbo.CreateBlogUser', N'U') IS NOT NULL
DROP PROCEDURE CreateBlogUser;
PRINT 'IS NOT NULL'
GO
(印刷は、それが真であるかどうかを試すためだけにあります)。そして、実行すると「IS NOT NULL」が出力されますが、プロシージャは削除されません。データベースにまだ存在しているため、Createプロシージャを実行すると失敗します。
でも!コードからNOTを削除しようとすると、機能します。プロシージャは削除され、「ISNOTNULL」が引き続き出力されます。これは完全に逆に思えますが、なぜそうなるのかわかりません。OBJECT_IDの余分なN:sとU:sと関係がありますか?ここでコードを見つけました