在 CREATE TABLE 的末尾添加 DEFAULT CONSTRAINT
Posted
技术标签:
【中文标题】在 CREATE TABLE 的末尾添加 DEFAULT CONSTRAINT【英文标题】:Add DEFAULT CONSTRAINT at the end of a CREATE TABLE 【发布时间】:2017-08-21 12:41:17 【问题描述】:如何?
我想在最后有一个独立的行
CREATE TABLE myTable (
table_id INT NOT NULL,
firstColumn NVARCHAR(10),
secondColumn INT,
thirdColumn INT,
CONSTRAINT DEF_secColumn DEFAULT 0 FOR secondColumn
)
它不工作。我收到错误消息
'for' 附近的语法不正确。
你能帮帮我吗?非常感谢转发!
【问题讨论】:
根据the documentation,默认约束不支持该表单。它支持所有其他列约束,但不支持DEFAULT
。为什么?这不是你可以用 T-SQL 真正提出的问题,它就是这样。
【参考方案1】:
您应该在需要默认值的字段旁边使用默认值,例如:
CREATE TABLE myTable (
table_id INT NOT NULL,
firstColumn NVARCHAR(10),
secondColumn INT DEFAULT 0,
thirdColumn INT
)
或者如果你真的想添加约束,你可以稍后用ALTER TABLE
添加它:
CREATE TABLE myTable (
table_id INT NOT NULL,
firstColumn NVARCHAR(10),
secondColumn INT,
thirdColumn INT
)
ALTER TABLE myTable ADD CONSTRAINT DEF_secColumn DEFAULT 0 FOR [secondColumn]
或@jeroen-mostert 建议的第三个选项
CREATE TABLE myTable (
table_id INT NOT NULL,
firstColumn NVARCHAR(10),
secondColumn INT CONSTRAINT DEF_secColumn DEFAULT 0,
thirdColumn INT
)
【讨论】:
您还缺少一个语法选项,即在第一个实例中添加名称:secondColumn INT CONSTRAINT DEF_secColumn DEFAULT 0
。
还没有想到,我会在编辑中添加,谢谢。以上是关于在 CREATE TABLE 的末尾添加 DEFAULT CONSTRAINT的主要内容,如果未能解决你的问题,请参考以下文章
php 向现有的db table / create table添加新字段
SQL Server - 你可以在 CREATE TABLE 中添加字段描述吗?
sql server create table 给字段添加注释说明