2017-02-24 147 views
2

我想将新列添加到已有数据的现有表中。 列应该不为NULL。 因为这个,我想设置一个默认值。但是当我做它抛出以下异常: “附近有语法错误为'”for'SQL Server'附近的语法不正确

ALTER TABLE Semester ADD SIDNew uniqueidentifier NOT NULL 
CONSTRAINT DF_SIDNew DEFAULT '00000000-0000-0000-0000-000000000000' FOR SIDNew 

我已经有了一看How to set a default value for an existing columnIncorrect syntax near the keyword 'FOR'但没有人帮助我。

回答

5

只是丢失部分FOR SIDNew。您正在添加一个具有默认约束的新列。您没有向现有列添加新的默认约束。

3

仅当您将默认值添加到Azure SQL数据仓库或并行数据仓库时,才需要关键字FOR。如果您使用的正常关系的SQL Server(内部或天青),那么你可以只写它没有FOR

ALTER TABLE Semester ADD SIDNew uniqueidentifier NOT NULL 
CONSTRAINT DF_SIDNew DEFAULT '00000000-0000-0000-0000-000000000000'; 

https://msdn.microsoft.com/en-gb/library/ms190273.aspx