我有一个DTS包引起了“复制SQL Server对象”任务的错误。该任务是复制从一个的SQL Server 2000 SP4的服务器到另一个(同一版本)的表加数据,并给出错误: -使用DTS复制检查约束时发生错误
找不到检查“dbo.MyTableName”约束,虽然该表被标记有一个。
源表有一个检查约束定义,似乎会导致问题。在运行DTS包后,这件事看起来可以正常工作 - 表中的所有约束和数据都在目标服务器上创建?但是上面的错误会导致后续步骤无法运行。
任何想法为什么会引发此错误?
我有一个DTS包引起了“复制SQL Server对象”任务的错误。该任务是复制从一个的SQL Server 2000 SP4的服务器到另一个(同一版本)的表加数据,并给出错误: -使用DTS复制检查约束时发生错误
找不到检查“dbo.MyTableName”约束,虽然该表被标记有一个。
源表有一个检查约束定义,似乎会导致问题。在运行DTS包后,这件事看起来可以正常工作 - 表中的所有约束和数据都在目标服务器上创建?但是上面的错误会导致后续步骤无法运行。
任何想法为什么会引发此错误?
这表明sys表中的元数据与实际模式不同步。如果您没有看到任何其他更普遍的腐败迹象,则通过将表格复制到另一个表格(从旧表格中选择* into newtable)来重建表格,删除旧表格,然后重命名新表格并替换约束条件帮帮我。这与2000年的企业管理器在插入不在表末尾的列时做的事情类似,所以在表中间插入新列,然后删除将实现同样的事情,如果你不喜欢不想手动编写查询。
如果您发现其他类似的错误,我会对整个数据库的状态有些担忧。 (我在这里假设你已经完成了CHECKDB命令并且错误持续存在......)
当新列(具有检查约束)添加到现有表时,此错误开始。调查我有: -
有趣的DTS包出现: -
由于检查约束创建时间为7分钟表之后创建时间即它创建的检查约束之后已经移动的数据。具有意义,因为它不需要检查正在复制的数据,大概可以提高性能。
正如戈德克所说,我认为系统表中有些东西已经变得腐败,因为具有相同列的新表工作正常。即使DBCC语句没有提供任何错误?