Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Ansible中的SQL Server数据库查询_Sql Server_Ansible_Ansible Inventory - Fatal编程技术网

Sql server Ansible中的SQL Server数据库查询

Sql server Ansible中的SQL Server数据库查询,sql-server,ansible,ansible-inventory,Sql Server,Ansible,Ansible Inventory,我想知道社区中是否有人使用Ansible操作Microsoft SQL Server数据库 我们希望向用Ansible编写的环境配置脚本中添加一个任务,该脚本将向SQL Server表中插入行。这些行将具有在变量文件中指定的参数 我无法找到实现此目的的特定Ansible模块,因此想知道是否有人在其他方面取得了成功?Ansible有,但没有人可以在Microsoft SQL Server上启动查询 在这种情况下,他是你的朋友 我如何从您的场景中看到它: 使用VAR为查询创建模板 使用模板模块将模

我想知道社区中是否有人使用Ansible操作Microsoft SQL Server数据库

我们希望向用Ansible编写的环境配置脚本中添加一个任务,该脚本将
向SQL Server表中插入
行。这些行将具有在变量文件中指定的参数

我无法找到实现此目的的特定Ansible模块,因此想知道是否有人在其他方面取得了成功?

Ansible有,但没有人可以在Microsoft SQL Server上启动查询

在这种情况下,他是你的朋友

我如何从您的场景中看到它:

  • 使用VAR为查询创建模板
  • 使用
    模板
    模块将模板化内容推送到服务器
  • 使用
    win_shell
    将该文件提供给mssql命令行执行
  • 最终删除推送的文件

为完整起见,以下是Ansible中用于Microsoft SQL Server的选择和插入的解决方案的语法:

插入

- name: 'insert row to SQL server DB'
  win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"INSERT INTO Addresses (DoorNum,Street,Town,PostCode) VALUES ({{ item.doornum }},'{{ item.street }}','{{ item.town }}''{{ item.postcode }}')\""
- name: 'select from SQL server DB'
  win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"SELECT ID FROM Addresses WHERE PostCode = '{{ item.postcode }}'\" | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors | ConvertTo-Json"
  register: response

- set_fact:
    ids: "{{ response.stdout|from_json}}"

- debug:
    var: ids
选择

- name: 'insert row to SQL server DB'
  win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"INSERT INTO Addresses (DoorNum,Street,Town,PostCode) VALUES ({{ item.doornum }},'{{ item.street }}','{{ item.town }}''{{ item.postcode }}')\""
- name: 'select from SQL server DB'
  win_shell: "invoke-sqlcmd -username \"{{db_user}}\" -password \"{{db_pass}}\" -Query \"SELECT ID FROM Addresses WHERE PostCode = '{{ item.postcode }}'\" | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors | ConvertTo-Json"
  register: response

- set_fact:
    ids: "{{ response.stdout|from_json}}"

- debug:
    var: ids

我看到有“invoke sqlcmd”-win_shell应该能够驾驶-我现在已经尝试了你在Ansible中建议的
win_shell
调用
invoke sqlcmd
例如:
-name:'invoke sql test'
win_shell:“invoke sqlcmd-用户名'-密码'-查询”“从表名中选择*”