我有很多代碼我試圖運行的位置查詢sysobjects表來檢查一個對象是否存在,然後再放下它並重新創建它。爲什麼IF EXISTS不起作用?
問題是,有時如果我去:
if not exists (select name from sysobjects o where o.name = 'my_table' and o.type = 'U')
CREATE TABLE my_table (..)
go
它工作,無後顧之憂。但是,當我再次運行它時,我得到了這個可愛的錯誤:
SQL Server Error on (myserver) Error:2714 at Line:10 Message:There is already an object named 'my_table' in the database.
感謝那,SQL程序員。我實際上要求你不要創建這個表,如果它已經存在。 -_-
任何想法?
我已經嘗試了「請刪除以前的版本,如果你有一個,然後安裝此版本」和「請只安裝此版本,如果你沒有以前的版本「。 我只想要一個腳本,我可以一次又一次運行(用於測試)而不會破壞任何東西(多個系統代碼,嘗試複製約束的系統錯誤等) – glasnt 2009-06-17 07:21:27