場合
現在、私はデータベースシードスクリプトに取り組んでおり、sqlcmd
. たとえば、このスクリプト サンプル:
IF (SELECT COUNT(*) FROM Genders)=0
BEGIN
PRINT N'Seeding table Genders...'
SET IDENTITY_INSERT Genders ON
GO
INSERT INTO Genders (GenderId, Description) VALUES (0, 'Onbekend');
INSERT INTO Genders (GenderId, Description) VALUES (1, 'Vrouw');
INSERT INTO Genders (GenderId, Description) VALUES (2, 'Man');
INSERT INTO Genders (GenderId, Description) VALUES (3, 'Onzijdig');
INSERT INTO Genders (GenderId, Description) VALUES (4, 'Vrouwman');
INSERT INTO Genders (GenderId, Description) VALUES (5, 'Manvrouw');
SET IDENTITY_INSERT Genders OFF
END
GO
問題
ただし、sqlcmd
SQL Server Management Studio のモードで実行すると、次のエラーが発生します。
メッセージ 102、レベル 15、状態 1、行 5 'ON' 付近の構文が正しくありません。
メッセージ 102、レベル 15、状態 1、行 10 'END' 付近の構文が正しくありません。
いくつかグーグルで検索しましたが、何が間違っているのかわかりません。IF/BEGIN/END がなくても動作しますが、最初にチェックを実行するのが好きです。
質問:
- 私が間違っていることはありますか?
- 不可能な場合、回避策はありますか?
前もって感謝します!!