SMO. Трансфер и потоковая передача файлов - PullRequest
1 голос
/ 03 августа 2010

Кому-нибудь удалось заставить механизм передачи работать со столбцами FILESTREAM?

Мой код выглядит следующим образом:

Transfer transfer = new Transfer(sourceDatabase);
transfer.CopyAllObjects = true;

transfer.DropDestinationObjectsFirst = true;
transfer.CopySchema = true;
transfer.CopyData = false;
transfer.CopyAllTables = true;
transfer.Options.WithDependencies = true; 

transfer.DestinationServer = server.Name;
transfer.DestinationDatabase = targetDatabaseName;

transfer.TransferData();

Я получаю сообщение об ошибке при создании таблицы со столбцами файлового потока:

"ОШИБКА: errorCode = -1073548784 description = Выполнение запроса ... завершилось неудачно со следующей ошибкой:" Таблица со столбцами столбца FILESTREAM должна иметь столбец ROWGUID, отличный от NULL. " при запросе свойство ResultSet установлено неправильно, параметры установлены неправильно или соединение установлено неправильно. helpFile = helpContext = 0 idofInterfaceWithError = {C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C} "

Это странно, потому что исходная таблица определенно имеет эти свойства. Я пропустил часть процесса передачи?

1 Ответ

1 голос
/ 03 августа 2010

Как ни странно, это прекрасно работает:

//transfer.TransferData();

System.Collections.Specialized.StringCollection script = transfer.ScriptTransfer();

Microsoft.SqlServer.Management.Smo.Database targetDatabase = server.Databases["dbname"];
targetDatabase.ExecuteNonQuery(script);

Может кто-нибудь пролить свет на это? Почему передача не удалась, но генерация и запуск скрипта работали нормально?

...