【问题标题】:.BAT File to Execute SQL Query (Backup).BAT 文件执行 SQL 查询(备份)
【发布时间】:2017-09-18 02:25:27
【问题描述】:

我有一个如下的 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

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

我的困惑是,我如何编写一个 .bat 文件来在 SQL Server 上执行这个查询?

到目前为止,我已经尝试过使用它:

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

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

此外,我不确定如何在所需字段中指定服务器名称或数据库名称。

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

提前感谢您的帮助!

继续 -

现在我正在处理这个

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 行,并没有做更多的事情。

有什么建议吗?

【问题讨论】:

  • 谢谢,我现在检查一下,如果它解决了同样的问题,请删除我的问题。
  • 无需删除您的问题,所以不介意重复:如果您没有找到其他问题,其他人可能也找不到。但是,他们可能会在那里找到您的问题和链接。
  • -Q 是查询。例如 -Q "select from DB where NAME='Frank'"
  • 无论如何,你说命令对你不起作用,你遇到什么错误?

标签: sql-server batch-file


【解决方案1】:

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

“服务器名称”通常是运行 SQL Server 实例的 PC 的 Windows 名称,如果您没有运行 SQL Server 的默认实例,可以选择扩展 \InstanceName。对于本地PC,您可以简单地使用.作为服务器名称。

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

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

【讨论】:

  • 它会“备份数据库DATABASENAME”吗?
  • (1) 确保您的 SQL 脚本在 SQL Server Management Studio 中运行时有效。如果您需要这方面的帮助,请随时提出新问题。 (2) 一旦你的 SQL 脚本工作,把它插入这里:... -Q "...my sql script..."
  • BACKUP DATABASE cmdlet 是否允许我选择备份保存的目标,还是会使用默认查询?
  • @LewisMCT333:我不明白你的问题。你写TO DISK = N'G:\Super Sacred Databases\Orderwise Backup\20-04-2017-13-05.bak'...这不是你想要保存备份的地方吗?
  • 我在初始帖子中的 SQL 脚本运行良好。我想那应该可以解决问题。
猜你喜欢
  • 2011-01-04
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多