我需要向現有表中添加一列,然後爲現有記錄插入適當的列值。我需要在單個存儲過程中完成此操作。創建後直接更改列值(在單個存儲過程中)
到目前爲止,我有以下的(SQL Management Studio中報告說,它無法找到,以便將值添加到現有記錄新列):
BEGIN
ALTER TABLE tbl1
ADD col_add int
UPDATE tbl1
SET [col_add]='value'
WHERE col_pk = 1
END
我已經嘗試添加一個「GO」關鍵字在ALTER和UPDATE語句之間,但會報告語法錯誤。
在此先感謝。
這是半路那裏,但你需要用'BEGIN TRAN'之前,你可以提交你開始交易他們 – GarethD 2013-04-26 12:25:26
如果你一個接一個地提交,那真的需要嗎?也許如果你做'改變','更新'然後提交,你必須添加事務,但我不認爲如果你做'改變''提交''更新''提交',你需要事務。也許我錯了,但... – 2013-04-26 12:28:42
是的,它是必要的,測試它。該過程將在沒有'BEGIN TRAN'的情況下編譯,但運行時會出現錯誤。有一個測試腳本[here](http://sqlfiddle.com/#!3/0ed4a/1),它不會因爲SQL Fiddle的權限而運行,但您可以在數據庫中嘗試它。如果取消註釋'BEGIN TRAN'行,您將看到該過程運行時沒有錯誤(如果運行一次)。 – GarethD 2013-04-26 12:38:32