2017-10-16 84 views
1

我正在创建一个Azure Runbook来连接到一个SQL数据库来进行一些查询。Azure Runbook使用python连接到Sql数据库

我试图导入两个库中的一个:pymssql,pyodbc但机器运行的runbook没有该库。

您是否有任何其他想法可以对sql数据库进行一些查询,或者在这台机器上安装这两个库。

非常感谢。

回答

2

您是否有任何其他想法对sql数据库进行一些查询,或者 在这台机器上安装这两个库。

作为一种变通方法,我们可以使用PowerShell来运行SQL查询,这里是例子:

$SqlServer = "jasontest321.database.windows.net" 
    $SqlServerPort = "1433" 
    $Database = "jasonsqltest" 
    $Table = "dbc" 
    $SqlCredentialAsset = "sql" 
    $SqlCredential = Get-AutomationPSCredential -Name $SqlCredentialAsset 
    if ($SqlCredential -eq $null) 
     { 
      throw "Could not retrieve '$SqlCredentialAsset' credential asset. Check that you created this first in the Automation service." 
     } 
    $SqlUsername = $SqlCredential.UserName 
    $SqlPass = $SqlCredential.GetNetworkCredential().Password 
    $Conn = New-Object System.Data.SqlClient.SqlConnection("Server=tcp:$SqlServer,$SqlServerPort;Database=$Database;User ID=$SqlUsername;Password=$SqlPass;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;") 

    $Conn.Open() 
    $Cmd=new-object system.Data.SqlClient.SqlCommand("insert into dbc(name,age)values('jason2','ba')", $Conn) 
    $Cmd.CommandTimeout=120 
    $Ds=New-Object system.Data.DataSet 
    $Da=New-Object system.Data.SqlClient.SqlDataAdapter($Cmd) 
    [void]$Da.fill($Ds) 
    $Ds.Tables.Column1 
    $Conn.Close() 

关于$SqlCredentialAsset = "sql",我们应该在Azure中的自动化账号创建的凭证,如: enter image description here

下面是运行手册结果:

enter image description here

更多相关信息,请参考link

+0

只需检查以查看提供的信息是否有帮助。如果您需要进一步的帮助,请告诉我。 –

+0

我无法安装pymssql,pyodbc到runbook,作为解决方法,我们可以使用powershell来执行SQL,请检查我的答案,请让我知道如果您需要更多帮助:) –

+0

抱歉,我的迟到答复。您的解决方案对我非常有帮助。是的,python是我的主要语言之一,而power shell是新的。从power shell开始对我来说有点困难,你的消息对我很有帮助。我正在按你的方式 –