我正在使用 SQL Server 和 SSMS。我有一張名為“通信”的表格。它包含一個名為“型別”的列。我創建了一個名為“TypeCode”的空列。我正在嘗試根據“型別列”中的值插入數值。到目前為止,這是我的代碼:
INSERT INTO Correspondence (TypeCode)
SELECT
CASE
WHEN [Type] = 'letter' THEN 1
WHEN [Type] = 'email' THEN 2
WHEN [Type] = 'User Note' THEN 3
ELSE 4
END;
當我執行代碼時,出現以下錯誤:
訊息 4104,級別 16,狀態 1,行 1
無法系結多部分識別符號“Correspondence.Type”。訊息 207,級別 16,狀態 1,第 1 行
無效的列名稱“型別”。訊息 207,級別 16,狀態 1,第 1 行
無效的列名稱“型別”。
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
實際上你需要一個UPDATE陳述句(不會INSERT在表中添加新行):
UPDATE Correspondence
SET TypeCode = CASE [Type]
WHEN 'letter' THEN 1
WHEN 'email' THEN 2
WHEN 'User Note' THEN 3
ELSE 4
END;
但是,您可以將新列創建為計算列(虛擬或持久),這樣您就不需要更新任何內容:
ALTER TABLE Correspondence ADD TypeCode AS
CASE [Type]
WHEN 'letter' THEN 1
WHEN 'email' THEN 2
WHEN 'User Note' THEN 3
ELSE 4
END;
查看簡化的演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/492698.html
上一篇:添加外鍵約束
