J'ai la requête suivante que je cours en utilisant un fichier de commandes. Dans le fichier batch que j'utilise la syntaxe suivante:Msg 102, niveau 15, état 1 ligne 1 syntaxe incorrecte près de 'n'
echo populating Application table with values...
SET "installFile=%sqlDir%\Install\DataFiles\Insert_ApplicationNames.sql"
OSQL /n /i "%installFile%" /d%db% /U%user% /P%pswd% /S%serv%
echo
echo populated Application table with values in Insert_ApplicationNames.sql
echo
Le sql illustré ci-dessous fonctionne sans erreur lorsqu'elle est exécutée la SQL Management Studio, mais il garde la moindre erreur lorsqu'il est exécuté comme une partie du script de traitement par lots. Quelqu'un pourrait-il m'aider à trouver ce que je fais mal ici?
En outre, les lignes sont insérées, mais l'installation de notre assurance qualité chaque soir se brise en raison de l'erreur générée par le script de traitement par lots.
IF NOT EXISTS(SELECT * FROM Application WHERE name = '')
BEGIN
INSERT INTO Application
(Name)
VALUES
('')
END
GO
IF NOT EXISTS(SELECT * FROM Application WHERE name = 'App1.exe')
BEGIN
INSERT INTO Application
(Name)
VALUES
('App1.exe')
END
GO
IF NOT EXISTS(SELECT * FROM Application WHERE name = 'App2.exe')
BEGIN
INSERT INTO Application
(Name)
VALUES
('App2.exe')
END
Est-ce le script exact dans 'Insert_ApplicationNames.sql'? –
oui, seulement diff étant qu'il ya 2 autres noms d'applications que j'insère avec le dessus 3 – EndlessSpace
Quelle ** version ** de SQL Server utilisez-vous? À partir de 2005, vous devriez utiliser l'utilitaire 'sqlcmd' plutôt que l'osql ... –