我们公司正在将其中一个产品从SQL Server 2005迁移到2008版本,在日志中我注意到有关删除不存在表的错误过多。在SQL Server 2005中,我们使用以下方法来删除表:
IF OBJECT_ID('dbo.Units', 'U') IS NOT NULL
DROP TABLE dbo.Units
看起来不再起作用。
如果在SQL Server 2008中存在一个表,删除该表的正确方法是什么?
我们公司正在将其中一个产品从SQL Server 2005迁移到2008版本,在日志中我注意到有关删除不存在表的错误过多。在SQL Server 2005中,我们使用以下方法来删除表:
IF OBJECT_ID('dbo.Units', 'U') IS NOT NULL
DROP TABLE dbo.Units
看起来不再起作用。
如果在SQL Server 2008中存在一个表,删除该表的正确方法是什么?
应该可以了!
IF EXISTS
(SELECT
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TableToDrop')
DROP TABLE TableToDrop
这段代码在我的SQL Server 2012上运行正常:
IF OBJECT_ID('t', 'U') IS NOT NULL DROP TABLE t
CREATE TABLE t(id int)
也许你的名称有误(例如,在新安装中使用大小写敏感排序?)。你遇到了什么样的错误? 请注意,在SQL Server 2016中,您可以使用DROP IF EXISTS:
DROP TABLE IF EXISTS t
CREATE TABLE t(id int)