案子
目前我正在研究数据库种子脚本,使用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 如果确实有效,但我喜欢先执行检查。
问题:
- 有什么我做错了吗?
- 如果不可能,有任何可用的解决方法吗?
提前致谢!!