【问题标题】:SQL Server SMO TransferData() keeps failingSQL Server SMO TransferData() 不断失败
【发布时间】:2009-05-19 22:47:28
【问题描述】:

我在 SQL Server SMO 中使用传输类的 TransferData 方法。 我在 Windows XP 上运行调用,运行 SQL Server 2008 SP1,试图将表从另一台服务器上的 SQL Server 2000 传输到 XP 机器。它们都使用相同的 SQL 用户名和密码。我已经使用导入/导出向导进行了测试,它运行良好。

异常如下,事件日志中出现“Package "ShellPackage" failed”错误。

异常错误将查询属性显示为空白且不能替换 .我假设某些 DTS 片段失败了,但我不确定是哪一个以及为什么。

例外: "ERROR : errorCode=-1073548784 description=执行查询 \"\" 失败,出现以下错误:\"The type initializer for '' throw an exception.\"。可能的失败原因:查询问题,\"ResultSet\ " 属性设置不正确、参数设置不正确或连接未正确建立。\r\n helpFile= helpContext=0 idofInterfaceWithError={C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C}"

我的代码:

try
            {
                string MasterUser = ConfigurationSettings.AppSettings["SQLUserName"];
                string MasterPassword = ConfigurationSettings.AppSettings["SQLPassword"];


                Server server = new Server(SourceServer);
                server.ConnectionContext.LoginSecure = false;
                server.ConnectionContext.Login = MasterUser;
                server.ConnectionContext.Password = MasterPassword;

                Database databaseSource = server.Databases[SourceDatabaseName];


                Transfer transfer = new Transfer(databaseSource);
                transfer.CopyAllObjects = false;
                transfer.DropDestinationObjectsFirst = false;
                transfer.UseDestinationTransaction = true;

                if (IsBasic)
                {
                    transfer.CopyAllDefaults = false;
                    transfer.Options.Indexes = false;
                    transfer.Options.DriAll = false;
                    transfer.CopyAllDefaults = false;
                }
                else
                {
                    transfer.CopyAllDefaults = true;
                    transfer.Options.Indexes = true;
                    transfer.Options.DriAll = true;
                    transfer.CopyAllDefaults = true;
                }

                transfer.Options.AnsiFile = true;
                transfer.Options.SchemaQualify = true;
                transfer.Options.WithDependencies = false;
                transfer.CreateTargetDatabase = false;
                transfer.CopySchema = true;

                if (CopyData)
                    transfer.CopyData = true;
                else
                    transfer.CopyData = false;

                transfer.DestinationServer = DestinationServer;
                transfer.DestinationDatabase = DestinationDatabaseName;
                transfer.DestinationLoginSecure = false;
                transfer.DestinationLogin = MasterUser;
                transfer.DestinationPassword = MasterPassword;


                //find the able object
                foreach (Table table in databaseSource.Tables)
                {
                    if (table.Name == TableName)
                    {
                        tableToTransfer = table;
                        break;
                    }
                }

                transfer.Options.IncludeIfNotExists = true;
                transfer.ObjectList.Add(tableToTransfer);
                transfer.TransferData();
            }
            catch (DbException dbExp)
            {
                throw new FaultException(dbExp.Message);
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }

【问题讨论】:

    标签: sql-server smo


    【解决方案1】:

    托管 WCF 服务(上面的代码)的服务需要在域用户下运行。

    【讨论】:

      猜你喜欢
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      相关资源
      最近更新 更多