스크립트에 변수를로드 한 다음이 변수를 SMO 개체에 전달합니다. "1"인수 (들) "ExecuteWithResults"를 호출PowerShell에서 SMO를 통해 SQL 스크립트를 실행하는 중 오류가 발생했습니다.
예외 : 나는 다음과 같은 예외 얻을. "결과는 데이터베이스에 대한 'Russell_Test'실패와 실행"을
- $ SERVERNAME은 서버 이름
- $ databaseName은 데이터베이스 이름입니다.
- $ createScript는 읽은 스크립트입니다.
이 문제를 어떻게 해결할 수 있습니까?
다음은 코드의 관련 부분입니다.
# Load Smo and referenced assemblies.
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.ConnectionInfo');
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Management.Sdk.Sfc');
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO');
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMOExtended');
Try{
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $serverName;
$db = $server.Databases.Item($databaseName);
$result = $db.ExecuteWithResults($createScript);
$result | Out-File -Append -FilePath $outputFile;
}
Catch
{
[system.exception]
$_.Exception | Out-File -Append -FilePath $outputFile
}
변수 $ createScript의 내용을 표시 할 수 있습니까? 여기 –
이 읽을 데이터베이스 스크립트 코드입니다 : 이 테이블 scripttest (A VARCHAR (1)) GO'이에서를 읽고 실제 코드를 만들 를 GO '사용 Russell_Test입니다 :'$ createScript = GET-내용 $ scriptFile . 전체 이름 | Out-String' – Russ960
이 간단한 CREATE 문을 사용해보십시오 : create table scripttest (VARCHAR (a)) –