如何在chef中运行sql命令

时间:2015-12-01 15:23:26

标签: sql-server ruby chef

我想从Windows服务器上的Chef cookbook运行以下MSSQL命令。

update RP2.rp2.USR02 SET UFLAG='0' WHERE BNAME='DDIC' AND MANDT='001'

如果我从命令提示符运行chef-client,它会更新数据库。但是我希望这可以工作,当我运行Chef服务而不是直接从命令提示符运行chef-client时,这不起作用。我试过下面的代码

path = File.join('D:', 'Program Files', 'Microsoft SQL Server', '110', 'Tools', 'Binn')


 execute 'run_sql_update_db' do
    cwd path
    command "SQLCMD.EXE -Q \"UPDATE RP2.rp2.USR02 SET UFLAG='0' WHERE BNAME='DDIC' AND MANDT='001';"
 end

这没有显示任何错误。

我也试过过.sql脚本。在我试过的代码下面

  execute 'run_sql_update_db' do
    cwd path
    command "SQLCMD.EXE -i D:\\TEMP\\update_db.sql"
  end

update_db.sql具有以下内容

update RP2.rp2.USR02 SET UFLAG='0' WHERE BNAME='DDIC' AND MANDT='001'

请帮忙。

1 个答案:

答案 0 :(得分:0)

令牌回答,以便将其标记为已解决。

用户必须将Chef设置为日志级别调试(chef-client -l debug),然后才能看到命令中存在错误。