如果SQL Server 2008 r2中存在,则删除列

MAK*_*MAK 6 sql-server sql-server-2008-r2

我正在使用SQL Server 2008 R2。

我想删除表中已经存在的列,否则不抛出任何错误。

尝试过:

ALTER TABLE Emp 
DROP COLUMN IF EXISTS Lname;
Run Code Online (Sandbox Code Playgroud)

错误:

关键字“ IF”附近的语法不正确。

通过搜索,我知道该选项从2016年开始可用。

SQL Server 2008 R2中有哪些替代方案?

Cha*_*kya 10

IF EXISTS (SELECT 1
               FROM   INFORMATION_SCHEMA.COLUMNS
               WHERE  TABLE_NAME = 'Emp'
                      AND COLUMN_NAME = 'Lname'
                      AND TABLE_SCHEMA='DBO')
  BEGIN
      ALTER TABLE Emp
        DROP COLUMN Lname
  END
GO
Run Code Online (Sandbox Code Playgroud)