저는 파워 쉘 스크립트를 몇 개 만들었고 Iv'e는 주로 데이터베이스를 쿼리하거나 .sql 파일을 입력하는 방법으로 Invoke-Sqlcmd를 사용했습니다. 접근과 살해 과정을 포함하는 것에 약간의 문제가있었습니다. 나는 그런Invoke-SQLCMD, SMO 또는 SQLConnection을 사용하는 것이 더 좋습니다
A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
로 erorrs을 받기 시작 때까지 잘 실행
Iv'e이 과정
$SQlSvr1 = New-Object Microsoft.SqlServer.Management.Smo.Server $serverInstance
$SQlSvr1.KillAllprocesses($databaseMain)
을 죽일 SMO를 사용하여 다음 내 프로세스를 실행하기 위해 호출-SQLCMD를 사용하고, 그것이
그리고 내가 프로세스를 죽이지 않으면
데이터베이스가 i이기 때문에 독점적 인 액세스를 얻을 수 없습니다. n 사용.
그래서 내 질문에, 재생 또는 난 내이 SMO 또는 SQLConnection을 모든 것을 변경하거나하지 않는 안정적인 연결을 유지하는 최선의 방법 것입니다 호출-SQLCMD를 사용하여 단일 연결을 만들 수있는 방법이 있는지, 하지만 invoke를 사용할 때마다 kill/requeue.
먼저 해당 스크립트를 백업하십시오. try/catch 내의 패치 스크립트를 사용하여 데이터베이스를 백업, 실행 및 업데이트하는 경우 kill 프로세스를 제외하고 스크립트가 catch 내에 백업 할 오류가 있으면 모두 Invoke-Sqlcmd를 사용합니다.
내가 작업하고있는 것의 90 %는 패치 스크립트 파일을 기반으로하므로 invoke-sqlcmd를 사용하면이 사용에 가장 적합할까요? – Lewis
미리 작성된 스크립트 파일을 서버에 던지기 만하면,'invoke-sqlcmd'로 시작 하겠지요. 당신은 아마 SMO와 함께 할 수도 있지만, 제가 말했듯이, 나는 경험이 없습니다. – alroc