2017-10-16 83 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開始對我來說有點困難,你的消息對我很有幫助。我正在按你的方式 –