如何在TFS中使用命令行任务在发布过程中备份SQL数据库?

时间:2018-06-22 02:54:01

标签: tfs release sqlcmd

在TFS发行版中,我希望使用命令行任务来备份SQL数据库,如下所示:

工具: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 ## [命令] 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]到   DISK ='D:\ SQLBACKUP \ ABS-dev_Release.bak'WITH COPY_ONLY':意外   论点。输入“-?”求助。 2018-06-22T02:45:02.2634060Z

     

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

我想知道是否有一个提示错误的行没有用双引号终止,并且尝试了诸如在查询段周围添加其他双引号的操作,但是到目前为止还算不上成功。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以在下面尝试使用参数,使用/Q代替-Q

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