仅当存在时如何在SQL Server 2008中删除表

koo*_*ker 2 sql sql-server-2008

我们公司正在将其中一种产品从SQL Server 2005迁移到2008,并且在日志中我注意到有关删除表(如果不存在)的错误过多。在SQL Server 2005中,我们必须删除表

IF OBJECT_ID('dbo.Units', 'U') IS NOT NULL
   DROP TABLE dbo.Units
Run Code Online (Sandbox Code Playgroud)

似乎不再起作用了。

仅当表存在于SQL Server 2008中时,删除表的正确方法是什么?

Spi*_*iky 6

这应该做!

IF EXISTS 
        (SELECT 
             TABLE_NAME 
         FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TableToDrop') 
DROP TABLE TableToDrop
Run Code Online (Sandbox Code Playgroud)