SQL SSMS复制数据库向导失败

时间:2013-11-12 14:00:56

标签: sql sql-server sql-server-2008 ssms wizard

我正在尝试使用SSMS中包含的“复制数据库向导”将数据库从一台服务器复制到另一台服务器。它始终失败:

  

错误:errorCode = -1073548784 description =执行查询“CREATE CLUSTERED INDEX [IX_CO_Summary_PostDate] ...”失败,并显示以下错误:“CREATE INDEX失败,因为以下SET选项的设置不正确:'ANSI_PADDING'。验证SET选项适用于计算列和/或过滤索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引。“可能的失败原因:查询“ResultSet”属性设置不正确的问题参数设置不正确或连接未正确建立。

有人可以剖析这个并帮我弄清楚哪里出错了吗?这两个SQL服务器都是SQL Server 2008 R2,我使用SQL Server身份验证连接,并使用SQL Server管理对象方法,因为我要求原始数据库在生产中保持生效。

完整的错误日志在这里:

  

日期,来源,严重性,步骤ID,服务器,作业名称,步骤名称,通知,消息,持续时间,Sql严重性,Sql消息ID,通过电话发送的操作员,发送的操作员网络,操作员页面,尝试的重试次数   11/12/2013 08:46:36,CDW_FEZ_FUNDEZ_E-MDS_0,错误,0,E-MDS,CDW_FEZ_FUNDEZ_E-MDS_0,(作业结果),作业失败。 Job sa由User sa调用。最后一步是第1步(CDW_FEZ_FUNDEZ_E-MDS_0_Step)。,00:02:08,0,0 ,,,, 0   11/12/2013 08:46:36,CDW_FEZ_FUNDEZ_E-MDS_0,错误,1,E-MDS,CDW_FEZ_FUNDEZ_E-MDS_0,CDW_FEZ_FUNDEZ_E-MDS_0_Step ,,以用户身份执行:E-MDS \ SYSTEM。 Microsoft(R)SQL Server执行包实用程序版本10.0.5500.0(适用于64位版权所有(C)Microsoft Corporation 1984-2005。版权所有。开始时间:上午8:46:36进展:2013-11-12 08:46:37.18来源:FEZ_FUNDEZ_E-MDS_Transfer对象任务任务刚刚开始执行:0%完成结束进度错误:2013-11-12 08:48: 42.79代码:0x00000000源:FEZ_FUNDEZ_E-MDS_Transfer对象任务描述:错误:errorCode = -1073548784 description =执行查询“CREATE CLUSTERED INDEX [IX_CO_Summary_PostDate] ...”失败,出现以下错误:“CREATE INDEX失败,因为以下SET选项具有不正确的设置:'ANSI_PADDING'。验证SET选项是否正确,以用于计算列和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引。 ”。可能的故障原因:查询“ResultSet”属性未正确设置的问题参数设置不正确或连接未正确建立。 helpFile = helpContext = 0 idofInterfaceWithError = {C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C} StackTrace:Microsoft的Microsoft.SqlServer.Management.Management.Smo.Transfer.TransferData()中的Microsoft.SqlServer.Management.Dts.DtsTransferProvider.ExecuteTransfer() .SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()结束错误进展:2013-11-12 08:48:42.82来源:FEZ_FUNDEZ_E-MDS_Transfer对象任务数据库传输失败1个数据库:0%完成结束进展进度:2013-11-12 08:48:42.82来源:FEZ_FUNDEZ_E-MDS_Transfer对象任务转移对象已完成执行:100%完成结束进度警告:2013-11-12 08:48:42.82代码:0x80019002来源:CDW_FEZ_FUNDEZ_E- MDS_0描述:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功但引发的错误数(1)达到允许的最大值(1);导致失败。当错误数达到MaximumErrorCount中指定的数量时,会发生这种情况。更改MaximumErrorCount或修复错误。结束警告DTExec:程序包执行返回DTSER_FAILURE(1)。开始时间:上午8:46:36完成时间:上午8:48:42经过:126.142秒。包执行失败。步骤失败。,00:02:08,0,0 ,,,, 0

目标是将此“生产”系统的副本安排到分析服务器,以便定期报告(每周一次),以便报告功能不与实时系统交互。

2 个答案:

答案 0 :(得分:1)

复制数据库向导一直对我失败。由于数据库太大,我也无法导出架构和数据脚本。此外,由于服务器位于托管环境且无法访问,因此我也无法对本地计算机进行备份。但是,这不会设置任何自动标识列。我的解决方案是:

  1. 创建一个新的空白本地数据库。
  2. 使用导入向导,右键单击数据库。任务 - >导入数据
  3. 使用Sql Server Native Client并设置Source和Destination。这将导入表/数据,但不会导入索引/约束。
  4. 使用以下脚本从源获取索引/约束和外键,并在本地数据库上运行它们。 https://www.mssqltips.com/sqlservertip/3443/script-all-primary-keys-unique-constraints-and-foreign-keys-in-a-sql-server-database-using-tsql/

答案 1 :(得分:0)

CREATE CLUSTERED INDEX [IX_CO_Summary_PostDate] ...

因以下错误而失败:

  

CREATE INDEX失败,因为以下SET选项的设置不正确:'ANSI_PADDING'。

您的数据库中有一个索引视图。向导尝试重新创建索引,但您的会话没有正确的设置。尝试从向导复制的对象中删除此对象,然后手动重新创建视图及其索引。