我正在使用SQL Server 2012尝试获取表中一列的值,并将它们放入另一列中另一列表的值中。如果我尝试运行以下查询:
INSERT INTO table2 (column3)
SELECT column3
FROM table1
WHERE (ScopeID IS NOT NULL)
ORDER BY Name
对于table2
,column3
属于同一类型(int
),NULL
值是允许的。但是当我尝试执行查询时,它会返回:
无法将值NULL插入列'column1',表'dbo.table2';,列不允许空值。 INSERT失败。
但我不是要插入column1
...它只是一个语法的东西,列的顺序必须匹配?
答案 0 :(得分:2)
你 插入column1
。请记住,您要插入整个行值,因此您应该为所有列提供一个值。您的查询等同于:
INSERT INTO table2 (column1, column2, column3)
SELECT NULL, NULL, column3
FROM table1
WHERE (ScopeID IS NOT NULL)
ORDER BY Name;
(等等表格中的所有列。)
我猜你确实想要一个update
,但你的问题没有提供足够的信息来提供进一步的指导。