我試圖一次將 50 行從一個表插入到另一個表中,但是我無法繞過我試圖插入的表中的“非空”列。
請注意,我無法更改該列,因此它接受空值。
我有 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
問題是表 1 中不存在表 2 中的第 3 列,因此我無法從表 1 中插入到表 2 中以填充表 2 中不允許為空的列。
uj5u.com熱心網友回復:
您可以選擇一個常數
INSERT INTO Table_2 (Column1, Column2, Column3)
SELECT top(50) Column1, Column2, 0
FROM Table_1
ORDER BY Column1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323664.html
標籤:sql sql-server
下一篇:如何從多個表中無重復地獲取資料
