SMO Transfer Class를 사용하여 데이터베이스의 모든 테이블에 대한 데이터를 스크립팅하려고합니다. INSERT 문을 일괄 적으로 작성하려고합니다. ScriptingOptions 속성 BatchSize는 각 INSERT 문 다음에 최종 스크립트에 배치 구분 기호 "GO"가 포함되어 있으므로 무시됩니다. 아래는 내가 사용하고 코드는 다음과 같습니다ScriptingOptions.BatchSize가 적용되지 않음
so.BatchSize = 500;
so.ScriptBatchTerminator = true;
so.NoCommandTerminator = false;
so.ScriptData = true;
so.SchemaQualify = true;
//and few other options all set to false
...
Transfer tData = new Transfer(sourceDb);
tData.Options = so;
...
tData.CopySchema = true;
tData.CopyData = true;
...
tData.EnumScriptTransfer();
출력 스크립트는 다음과 같다 :
INSERT INTO...
GO
INSERT INTO...
GO
INSERT INTO...
GO
...
하지만 예상 출력은
INSERT INTO...
INSERT INTO...
INSERT INTO...
//497 more INSERTS
GO
...
2008 어셈블리를 사용하고 있기 때문에 Transfer.BatchSize를 사용할 수 없습니다. –
2012 어셈블리로 전환하고 Transfer.BatchSize를 사용해 보았습니다. 여기서 문제는이 속성에 지정된 값에 관계없이 항상 100 행 후 GO를 삽입한다는 것입니다. –