有没有人设法让传输机制与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列的表必须具有非NULL唯一的ROWGUID列。“。可能的失败原因:问题查询,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。 helpFile = helpContext = 0 idofInterfaceWithError = {C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C}“
这很奇怪,因为源表肯定设置了这些属性。我错过了转移过程的一部分吗?
答案 0 :(得分:1)
奇怪的是,这很好用:
//transfer.TransferData();
System.Collections.Specialized.StringCollection script = transfer.ScriptTransfer();
Microsoft.SqlServer.Management.Smo.Database targetDatabase = server.Databases["dbname"];
targetDatabase.ExecuteNonQuery(script);
任何人都可以对此有所了解吗?为什么传输失败,但生成和运行脚本工作正常?