使用SELECT的SQL INSERT INTO语句

3

我有一张表,名为Table1,其中有7列。我们称它们为C1到C7。

C3到C6列允许为空值。

我该如何编写SQL插入语句来插入Table1中的值,同时从另一个表(ReferenceTable)获取C1和C2的值,而将C7设置为0?

目前,我的代码如下:

INSERT INTO Table1 (C1, C2)
SELECT @C1, C2
FROM ReferenceTable

这个工具几乎满足了我所有需求,唯独无法将C7初始化为0。我该怎么做?


1
编写不包括每个列(除了标识列)的INSERT语句是一种不良实践。此外,您可以将C7设置为默认值0并使其“NOT NULL”。然后,当您在INSERT语句中不包括它时,它将默认为0。 - KM.
2个回答

4
使用以下插入查询语句:
insert into table1 (c1,c2,c7) (select c1,c2,0 from reftable)

3
您可以在SELECT语句中添加0来...
INSERT INTO Table1 (C1, C2, C7)
SELECT C1, C2, 0
FROM ReferenceTable

或者,您可以将C7设置为默认值为0,这是我更喜欢的选项。
ALTER TABLE Table1 
ALTER COLUMN C7 SET DEFAULT (0)

所以,如果没有插入任何内容,C7将始终为0。
在设计师中(在管理工作室中),当您修改表时,您要查找的字段是“默认值或绑定”。 enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接