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

Tsql 组合两个.bat文件Dos和T-SQL,tsql,dos,batch-file,Tsql,Dos,Batch File,我想要的是将两个文件合并成一个bat文件,但目前sqlcmd在sqlqcmd提示符下停止,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

我想要的是将两个文件合并成一个bat文件,但目前sqlcmd在sqlqcmd提示符下停止,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
哎哟,服务器坏了,所以我需要在PDQ中设置应急措施

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

很好,所以我创建了一个backup.bat,它在cmd中运行良好,调用backup.sql,sql将其发送到另一个驱动器

我使用的说法是:-

Sqlcmd–S\mypc\instancename–i C:\backup.sql(我是本地窗口身份验证)

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

目前,我有一个.bat文件调用一个.sql文件

备份.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


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

我发现使用两个文件有效

这只会完成SQL语句,而不会在sqlcmd提示符启动后强制SQL进入dos窗口?这就是我所追求的。我还没有找到答案,但我已经习惯了它的工作!但不是临床的