将列插入到新表中,其中一列不允许空值



我试图一次从一个表插入50行到另一个表,但是我无法绕过我试图插入的表中的'Not Null'列。

请注意,我不能修改该列,使其接受null。

我有2个表(表1和表2)。我将表1中的2列插入到表2中(表2目前为空)。问题是表2有第三列,它不能有空值。

这是我目前所掌握的。

-- Checking what exists in Table 1 that doesn't exist in Table 2 before inserting
IF EXISTS (SELECT T1.Column1, T1.Column2
FROM Table_1 T1
LEFT JOIN Table_2 T2 on T1.Column1=T2.Column1
WHERE T2.Column1 IS NULL)
BEGIN
INSERT INTO Table_2 (Column1, Column2)
SELECT TOP(50) Column1, Column2
FROM Table_1
ORDER BY Column1
SELECT @@ROWCOUNT
END
IF @@ROWCOUNT < 50
(
SELECT * 
FROM Table_2
)
BEGIN
UPDATE Table_2
SET Column3 = 0
END

问题是表2中的列3在表1中不存在,所以我不能从表1中插入任何东西来填充表2中不允许为空的列。

你可以选择一个常量

INSERT INTO Table_2 (Column1, Column2, Column3) 
SELECT top(50) Column1, Column2, 0 
FROM Table_1
ORDER BY Column1

相关内容

  • 没有找到相关文章

最新更新