1
我有一個查詢來添加一列,如果它不存在。它第一次工作,但如果我再次運行它,它會失敗,說該列存在?!?如果列存在查詢問題 - SQL Server
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TABLE_NAME' AND COLUMN_NAME = 'COLUMN_NAME')
BEGIN
ALTER TABLE TABLE_NAME ADD COLUMN nchar(3) NULL;
END
而當我對INFORMATION_SCHEMA.COLUMNS運行查詢時,它不返回任何內容。
我也試過
IF NOT EXISTS (SELECT * FROM SYS.COLUMNS WHERE NAME = N'COLUMN_NAME' AND OBJECT_ID = OBJECT_ID(N'TABLE_NAME'))
版本,它具有相同的行爲(它工作一次,未能在第二輪)。
什麼時候sys表得到更新,什麼是傻瓜證明方式來測試列是否存在?
感謝, 山姆
duplicate:http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table – 2010-10-29 08:29:36