案例
目前我正在编写数据库种子脚本,使用 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
问题
然而,如果我在SQL Server Management Studio中使用sqlcmd
模式执行它,会出现以下错误:
Msg 102, Level 15, State 1, Line 5 Incorrect syntax near 'ON'.
Msg 102, Level 15, State 1, Line 10 Incorrect syntax near 'END'.
我谷歌了一些,但是无法找出我做错了什么。如果没有IF/BEGIN/END,它可以正常工作,但我想先进行检查。
问题:- 我做错了什么吗?
- 如果不可能,有任何可用的解决方法吗?
提前感谢!!
GO
会工作吗? - red-X