Sql 如果列存在,则删除列

Sql 如果列存在,则删除列,sql,sql-server,Sql,Sql Server,请帮助我了解以下sql server 2016语法如果columnX存在,请删除columnX CREATE TABLE T ( ID INT, VAL INT ) IF EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.T') AND Name = 'VAL') BEGIN ALTER TABLE dbo.T DROP COLUMN VAL END 如果列是主键,它只会

请帮助我了解以下sql server 2016语法如果columnX存在,请删除columnX

CREATE TABLE T
(
    ID INT,
    VAL INT
)

IF EXISTS(SELECT 1 FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.T') AND Name = 'VAL')
BEGIN

    ALTER TABLE dbo.T
    DROP COLUMN VAL

END

如果列是主键,它只会删除该列,而不会删除约束当您删除列时,与该列关联的约束将自动删除