我从本地计算机的批处理文件中针对远程 SQL Server 数据库调用此 T-SQL 脚本:
MyBatchFile.bat
:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"
-S RemoteIPaddress -U username -P userPassword -i D:\MyBackups\backup_db.sql
backup_db.sql
:
declare @backupfile nvarchar(255)
set @backupfile = N'D:\MyLocalBackups\' +
CONVERT(varchar(4), datepart(yy, getdate())) +
right('0' + CONVERT(varchar(2), datepart(mm, getdate())),2) +
right('0' + CONVERT(varchar(2), datepart(dd, getdate())),2) +
N'_' +
right('0' + CONVERT(varchar(2), datepart(hour, getdate())),2) +
right('0' + CONVERT(varchar(2), datepart(minute, getdate())),2) +
N'_MyDbBackup.bak'
BACKUP DATABASE MyDatabase TO DISK = @backupfile
WITH NOFORMAT, INIT, NAME = N'MyDatabase Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
而且我希望将备份从执行它的位置放置到我的本地计算机中,但似乎它正在尝试进行备份并将其放置到远程计算机中,因此出现以下错误:
无法打开备份设备“D:\MyLocalBackups\20131011_1200_MyDbBackup.bak”。操作系统错误 21(设备未准备好。)。
我怎样才能做到这一点?
请注意,.bat
文件和.sql
文件放在我的本地机器上,而不是放在远程机器上。