.sql
ファイルに複数のストアドプロシージャと関数スクリプトが含まれています。PowerShell 2.0 1つのSQLファイルを実行する(複数のSPと関数を持つ)
Invoke
コマンドを使用したくないのは、私のサーバーがそれらをサポートしていないためです。
現在、.sql
ファイルにストアドプロシージャまたはストアドプロシージャが1つしかない場合、正常に動作する以下のコードを使用しています。
$scriptDetail = Get-Content $sqlScriptLocation \t | Out-String
$scriptDetail = $scriptDetail -creplace 'GO',''
$scriptDetail = $scriptDetail -replace 'SET ANSI_NULLS ON',''
$scriptDetail = $scriptDetail -replace 'SET QUOTED_IDENTIFIER ON',''
$ConnectionString = “Server=$dataSource;uid=$user; pwd=$cred;Database=$database;”
$sqlCon = New-Object -TypeName System.Data.SqlClient.SqlConnection -ArgumentList $ConnectionString
$sqlCon.Open()
$sqlCmd = New-Object -TypeName System.Data.SqlClient.SqlCommand
$sqlCmd.Connection = $sqlCon
$sqlCmd.CommandText = $scriptDetail
$sqlCmd.ExecuteNonQuery() \t \t
$sqlCon.Close()
彼らは
System.Data.SqlClient.SqlException(0x80131904)のようなエラーcasusedので、私は上記のコードで
GO
や他の2つのコマンドを置き換えています:付近に正しくない構文」をGO 'System.Data.SqlClient.SqlException(0x80131904):' CREATE FUNCTION 'はクエリの最初のステートメントでなければなりませんバッチ
私はいくつかの掘削後の溶液を思い付いているスカラー変数「@variablename」
$ sqlScriptLocation = "C:\ All_Restore_PROCEDUREFunctiond.sql" – TahirAyoub