我正在使用SQL Server Management Studio的v.17.1版。理论上,查询DROP TABLE IF EXISTS
可以在SQL Server 2016中运行。
您可以在Microsoft官方网页上看到:DROP TABLE
但是,当我尝试执行查询时
DROP TABLE IF EXISTS dbo.EmpLocations;
出现错误:
关键字' IF'附近的语法不正确。
有什么问题?我使用Microsoft的特定数据库来使用SQL Server 2016 - 2017。
答案 0 :(得分:5)
为了向后兼容所有版本的sql-server,请使用:
IF OBJECT_ID('dbo.emplocations') IS NOT NULL
DROP TABLE dbo.emplocations;
GO
答案 1 :(得分:2)
我们有很多方法可以做到这一点,但通常情况并非DROP
和CREATE
实践,您可以使用临时表的物理表
检查实际表的存在和DROP:
IF EXISTS(SELECT 1 FROM sys.objects where name = 'myTable' AND type = 'U')
DROP TABLE dbo.myTable
IF OBJECT_ID('dbo.myTable', 'U') IS NOT NULL
DROP TABLE dbo.myTable;
检查是否存在临时表和DROP:
IF OBJECT_ID('tempdb.dbo.#myTable', 'U') IS NOT NULL
DROP TABLE #myTable;