我有一个奇怪的问题。我试图仅在程序存在时才删除它,并拥有以下代码:
IF OBJECT_ID(N'dbo.CreateBlogUser', N'U') IS NOT NULL
DROP PROCEDURE CreateBlogUser;
PRINT 'IS NOT NULL'
GO
(印刷品仅用于尝试是否真实)。当我运行它时,会打印“IS NOT NULL”,但不会删除该过程!它仍然存在于数据库中,所以当我运行我的 Create 过程时,它失败了。
然而!当我试图从代码中删除 NOT 时,它起作用了!该过程被删除并且仍然打印“IS NOT NULL”。这似乎完全倒退了,我不知道为什么会这样。是否与 OBJECT_ID 中额外的 N:s 和 U:s 有关?在这里找到代码