结合两个.bat文件Dos和T-SQL

时间:2010-12-06 13:10:30

标签: tsql dos batch-file

我想要的是将两个文件合并到一个bat文件中,但是当前sqlcmd在sqlqcmd提示符下停止并且SQL没有运行。

哎哟服务器爆炸了所以我需要把意外事故放到PDQ

我通常在某些作业中使用SQL Server代理,但正在对新服务器进行排序。我只有SQL express没有SQL服务器代理。

很好,所以我创建了一个backup.bat它可以在cmd中正常工作,调用backup.sql将sql发送到另一个驱动器。

我使用的陈述是: -

Sqlcmd -S \ mypc \ instancename -i C:\ backup.sql(因为我本地窗口认证很好)

这样我就可以在不太友好的Windows 7中使用任务调度程序

目前我有一个.bat文件调用.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

我想要的是将两个文件合并为一个bat文件,但当前sqlcmd会停止并显示sqlcmd并且SQL未运行。

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

2 个答案:

答案 0 :(得分:2)

添加

quit

作为.SQL文件的最后一行。

答案 1 :(得分:0)

我发现使用了两个文件