我有這樣的代碼,我從MySQL轉換:的SQL Server:檢查表存在,否則創建
IF NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'odds_soccer')
CREATE TABLE "odds_soccer" (...)
唯一的問題是...如果我嘗試運行它兩次,它會難倒第二次與錯誤
消息2714,級別16,狀態6,行1
已經有一個在數據庫中名爲 'odds_soccer' 的對象。
因爲我實際上在SO上找到了我的解決方案,所以我不確定爲什麼代碼不工作。
我目前正在從Microsoft SQL Server Management Studio中選擇我的數據庫作爲查詢來運行它。
如果我放棄模式部件 - 並使用此 - 它似乎工作: IF(NOT(EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME =「odds_soccer '))) 因爲這實際上是由軟件生成的代碼,對底層數據庫沒有特別的瞭解(odds_soccer只是一個例子,可以是任何數據,列等)----這不是最兼容的代碼生成/使用? – Tom