.BAT文件执行SQL查询(备份)

时间:2017-04-21 07:37:35

标签: sql-server batch-file

我有一个SQL脚本,如下所示: -

   BACKUP DATABASE [**********] TO  DISK = N'G:\Super Sacred Databases\Orderwise Backup\20-04-2017-13-05.bak' WITH NOFORMAT, NOINIT,  NAME = N'**********-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

在服务器上,我希望运行一个可以在Windows任务调度程序上安排的.bat文件。

我的困惑是,如何编写.bat文件以在SQL Server上执行此查询?

我到目前为止试图使用它:

sqlcmd -U myLogin -P myPassword -S MyServerName -d MyDatabaseName 
    -Q ?

问题是对我来说根本不起作用,而且我不知道-Q是什么?将在SQL Server中运行特定的查询。

此外,我不确定如何在所需字段中指定Servername或Databasename。

我知道我是新手,但是我很努力。

提前感谢您的帮助!

续 -

现在我正在使用这个

sqlcmd -U s******a -P 0****! -S LPSERVER\ORDERWISE 
-Q "BACKUP DATABASE [********Live] TO  DISK = N'G:\Super Sacred Databases\Orderwise Backup\20-04-2017-13-05.bak' WITH NOFORMAT, NOINIT,  NAME = N'******estLive-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
"

但它似乎没有做任何事只是在CMD界面中显示cmd行而不再做任何事情。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

由于BACKUP DATABASE可以在任何数据库的上下文中执行,因此您可以跳过-d参数。

"服务器名称"如果您没有运行SQL Server的默认实例,则通常是运行SQL Server实例的PC的Windows名称,可选地由\InstanceName扩展。对于本地PC,您只需使用.作为服务器名称。

-Q包含您正在执行的查询:

sqlcmd -U myLogin -P myPassword -S MyServerName -Q "BACKUP DATABASE ..."