當執行下面的腳本,我得到的錯誤:這個tsql有什麼問題?
Msg 207, Level 16, State 1, Line 15 Invalid column name 'b'.
任何人都可以解釋一下嗎?謝謝。
DROP TABLE ttt;
CREATE TABLE ttt(a nvarchar)
IF NOT EXISTS (SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.ttt')
AND name = 'b')
AND EXISTS (SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.ttt')
AND name = 'a')
BEGIN
ALTER TABLE [dbo].ttt ADD b NVARCHAR
UPDATE [dbo].ttt
SET b = a
ALTER TABLE [dbo].ttt DROP COLUMN a
END
我更改爲EXEC格式並得到相同的錯誤。 –
@Yousui - 我只是將你的整個腳本複製到一個乾淨的服務器上,刪除頂部的drop table ttt,按照上面的指定更改'UPDATE'語句,並且沒有錯誤地運行它。這仍然是一樣的錯誤嗎?是否有批次的後續部分(您沒有向我們顯示)也引用了列b,這些部分將在更改發生之前進行編譯? –
是的,它顯示完全相同的錯誤。 –