如何仅在 SQL Server 2008 存在时删除 table
How to drop a table in SQL Server 2008 only if exists
我们公司正在将其产品之一从 SQL Server 2005 迁移到 2008,并且在日志中我注意到有关删除 table 不存在的过多错误。在 SQL Server 2005 中,我们删除了 tables
IF OBJECT_ID('dbo.Units', 'U') IS NOT NULL
DROP TABLE dbo.Units
这似乎不再有效了。
仅当 SQL Server 2008 中存在 table 时,删除它的正确方法是什么?
应该这样做!
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)
我们公司正在将其产品之一从 SQL Server 2005 迁移到 2008,并且在日志中我注意到有关删除 table 不存在的过多错误。在 SQL Server 2005 中,我们删除了 tables
IF OBJECT_ID('dbo.Units', 'U') IS NOT NULL
DROP TABLE dbo.Units
这似乎不再有效了。
仅当 SQL Server 2008 中存在 table 时,删除它的正确方法是什么?
应该这样做!
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)