首页 > 解决方案 > 如何在 TFS 中使用命令行任务在发布期间备份 SQL 数据库?

问题描述

我希望使用命令行任务备份 SQL 数据库作为我的 TFS 版本中的一个步骤,如下所示:

工具:SqlCmd

参数: -U用户名-P密码-S sqlserver\instance –Q "BACKUP DATABASE [ mydatabase ] TO DISK=' X:\SomePath\mydatabase.bak ' WITH COPY_ONLY"

如果我复制/粘贴并在命令窗口中运行它,则输出到 TFS 日志中的结果命令有效。

但是由于某种原因,TFS 在尝试执行命令时会抛出错误。

这是日志信息:

2018-06-22T02:45:02.1384055Z ##[command]SqlCmd -U用户名-P 密码-S sqlserver\instance –Q "备份数据库 [ mydatabase ] TO DISK=' X:\SomePath\mydatabase.bak ' WITH COPY_ONLY "

2018-06-22T02:45:02.2009053Z Sqlcmd:'-Q“备份数据库 [ABS-dev] 到磁盘 ='D:\SQLBACKUP\ABS-dev_Release.bak' WITH COPY_ONLY':意外参数。输入“-?” 寻求帮助。2018-06-22T02:45:02.2634060Z

[错误]进程完成,退出代码为 1。

我想知道是否有一个线索是指示错误的行没有用双引号终止,并且已经尝试过在查询段周围添加额外的双引号,但到目前为止还没有运气。

有任何想法吗?

标签: tfsreleasesqlcmd

解决方案


您可以尝试下面的参数,使用/Q而不是-Q

-U username -P password -S sqlserver\instance /Q "BACKUP DATABASE [mydatabase] TO DISK='X:\SomePath\mydatabase.bak' WITH COPY_ONLY"

推荐阅读