我试图一次从一个表插入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