2015-04-21 4 views
6

Ho visto alcuni esempi di esecuzione di un comando SQL da Azure Powershell, ad es.Utilizzare Azure PowerShell per eseguire un file .sql

$connectionString = "Data Source=MyDataSource;Initial Catalog=MyDB;User ID=user1;Password=pass1;Connection Timeout=90" 
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString) 
$query = "CREATE TABLE...." 
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection) 
$connection.Open() 
$command.ExecuteNonQuery() 
$connection.Close() 

C'è un modo per sostituire la query $ con un riferimento a un file esterno che contiene un intero script SQL?

Grazie.

risposta

7

20 altri minuti di ricerca e l'ho trovato.

$connectionString = "Data Source=MyDataSource;Initial Catalog=MyDB;User ID=user1;Password=pass1;Connection Timeout=90" 
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString) 
$query = [IO.File]::ReadAllText("C:\...\TestSQL.sql") 
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection) 
$connection.Open() 
$command.ExecuteNonQuery() 
$connection.Close() 
+0

Un'altra opzione sarebbe quella di invocare sqlcmd per eseguire lo script. Un esempio di iterazione di più file può essere trovato qui: [link] (http://stackoverflow.com/questions/29380076/how-to-run-multiple-sql-scripts-in-ssms-against-sql-azure/ 29402966? noredirect = 1 # comment46990553_29402966) –