2012-12-07 23 views
0

我正在使用類似以下的腳本,但它始終抱怨無效的列名稱爲'NewColumnA'。是否需要動態sql來完成此操作,還是有更簡單的解決方案?SQL將數據插入到一個全新列失敗

ALTER TABLE TableA ADD NewColumnA VARBINARY(300) 

UPDATE TableA 
SET 
    NewColumnA=b.OldColumnB, 
FROM 
    TableA a, TableB b 
WHERE a.myID=b.myID 
+2

這是從SSMS還是從存儲過程運行?如果來自SSMS,您可能需要在您的'ALTER'和'UPDATE'語句之間使用'GO'來首先提交修改。 – LittleBobbyTables

+0

對不起,這是SSMS;我已經添加了標籤。謝謝 – WEFX

回答

3

您需要添加Go(其中Signals the end of a batch of Transact-SQL statementsALTER TABLE之後;

ALTER TABLE TableA ADD NewColumnA VARBINARY(300) 
GO 
--rest of the query 
UPDATE TableA 
SET 
    NewColumnA=b.OldColumnB, 
FROM 
    TableA a, TableB b 
WHERE a.myID=b.myID 
2

嘗試用GO

ALTER TABLE TableA ADD NewColumnA VARBINARY(300) 

GO 

UPDATE TableA 
SET 
    NewColumnA=b.OldColumnB, 
FROM 
    TableA a, TableB b 
WHERE a.myID=b.myID