2017-08-19 7 views
0

既存のテーブルに列を追加する際に:私は「不適切な構文、既存のテーブルのテーブルに列を追加する際に

IF NOT EXISTS(SELECT * 
       FROM datab2.INFORMATION_SCHEMA.COLUMNS 
       WHERE table_name = 'f1' 
       AND table_schema = 'datab2' 
       AND column_name = 'c4') 
THEN 
    ALTER TABLE f1 
    ADD c4 nvarchar(50) 
END IF; 

メートルエラーを取得:

Incorrect syntax near the keyword 'IF' and 'THEN'

+0

IFBEGINENDを必要とし、これを試してみてください? MySQL? MSSQL(T-SQL)?その他? – AjahnCharles

答えて

1

使用している構文が間違っています。どのDBエンジン

IF NOT EXISTS(SELECT * 
       FROM datab2.INFORMATION_SCHEMA.COLUMNS 
       WHERE table_name = 'f1' 
       AND table_schema = 'datab2' 
       AND column_name = 'c4') 
BEGIN 
    ALTER TABLE f1 
    ADD c4 nvarchar(50) 
END; 
+0

['IF'](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/if-else-transact-sql)ステートメント_can_ [ステートメントブロック]を制御できます(https ://docs.microsoft.com/en-us/sql/t-sql/language-elements/begin-end-transact-sql)、単一のステートメントも許可されています。 – HABO

0

あなたの構文が正しくありません。

IF NOT EXISTS 
    (
    ... 
    ) 

    BEGIN 
     ... 
    END 
関連する問題