2010-12-06 7 views
0

Ce que je voudrais est de combiner les deux fichiers dans un seul fichier bat, mais actuellement sqlcmd s'arrête avec l'invite sqlqcmd et le SQL n'est pas en cours d'exécution.combinant deux fichiers .bat Dos et T-SQL

serveur Aïe est allé frapper si je dois mettre d'urgence en place PDQ

J'utilise normalement agent serveur SQL avec quelques emplois, mais tout est en cours de tri le nouveau serveur. Je n'ai que SQL Express Aucun agent de serveur SQL.

Fine mon donc j'ai créé un backup.bat cela fonctionne très bien dans cmd en appelant backup.sql le sql l'envoie à un autre lecteur.

La déclaration est je: -

Sqlcmd S \ mypc \ nominstance -i C: \ backup.sql (comme je suis l'authentification de la fenêtre locale est très bien)

Il en est ainsi que je peux utiliser le planificateur de tâches dans des fenêtres pas très conviviales 7

En ce moment, j'ai un fichier .bat appelant un fichier .sql.

backup.bat

Sqlcmd –S \mypc\instancename –i C:\backup.sql 

backup.sql

BACKUP DATABASE [Northwind] TO DISK = N'\\nas1\backup\northwind.bak' WITH NOFORMAT, INIT, NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 
GO 
declare @backupSetId as int 
select @backupSetId = position from msdb..backupset where database_name=N'Northwind' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'Northwind') 
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''Northwind'' not found.', 16, 1) end 
RESTORE VERIFYONLY FROM DISK = N'\\nas1\backup\Northwind.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 
GO 

Ce que je veux est de combiner les deux fichiers en un seul fichier de chauve-souris, mais actuellement arrête sqlcmd avec l'invite sqlcmd et le SQL n'est pas en cours d'exécution.

Sqlcmd –S \mypc\instancename 
BACKUP DATABASE [Northwind] TO DISK = N'\\nas1\backup\northwind.bak' WITH NOFORMAT, INIT, NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 
GO 
declare @backupSetId as int 
select @backupSetId = position from msdb..backupset where database_name=N'Northwind' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'Northwind') 
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''Northwind'' not found.', 16, 1) end 
RESTORE VERIFYONLY FROM DISK = N'\\nas1\backup\Northwind.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 
GO 

Répondre

2

Ajouter

quit 

la dernière ligne des fichiers .SQL.

+0

Cela ne terminer l'instruction SQL ne forcera pas la sql dans la fenêtre dos après l'invite sqlcmd a commencé? ce qui est ce que je suis après. – icecurtain

+0

Je n'ai pas trouvé la réponse mais j'utilise des fichiers ça marche! mais pas clinique – icecurtain

0

J'ai trouvé à l'aide de deux fichiers fonctionne