Sql server SQL Server:复制包含数据的表会导致约束冲突,如何?

Sql server SQL Server:复制包含数据的表会导致约束冲突,如何?,sql-server,duplicates,constraints,primary-key,unique-constraint,Sql Server,Duplicates,Constraints,Primary Key,Unique Constraint,我正在尝试将SQL Server数据库复制到新服务器 我编写了创建表的脚本,然后使用导入/导出将数据从一个数据库传输到另一个数据库 这对于除了两个表之外的所有表都很好,这两个表因主键冲突而抛出错误 所以,我想弄清楚这是怎么发生的。我使用SQLServerManagementStudio为源数据库和目标数据库中的表编写脚本,以确保它们完全相同,这并不奇怪。这两个表都有一个标识列,所以我确保勾选了“删除目标表中的行”和“启用标识插入”复选框。第二个当然是确保与其他移植数据的关系完整性 那么这是怎么发

我正在尝试将SQL Server数据库复制到新服务器

我编写了创建表的脚本,然后使用导入/导出将数据从一个数据库传输到另一个数据库

这对于除了两个表之外的所有表都很好,这两个表因主键冲突而抛出错误

所以,我想弄清楚这是怎么发生的。我使用SQLServerManagementStudio为源数据库和目标数据库中的表编写脚本,以确保它们完全相同,这并不奇怪。这两个表都有一个标识列,所以我确保勾选了“删除目标表中的行”和“启用标识插入”复选框。第二个当然是确保与其他移植数据的关系完整性

那么这是怎么发生的呢?下面是两个表创建和错误,只是为了向您提供详细信息,但不管表的详细信息如何,我不理解数据如何存在于表的版本中,并在另一个版本中导致约束冲突

有人能给我一种导出/导入表结构和数据的替代方法,以便将两个表从一个DB转换到另一个DB吗

CREATE TABLE [dbo].[PageHeader](
    [PageHeaderID] [int] IDENTITY(1,1) NOT NULL,
    [SiteKey] [smallint] NOT NULL,
    [Page] [varchar](250) NOT NULL,
    [TitleTag] [varchar](250) NULL,
    [DescriptionTag] [varchar](250) NULL,
    [Keywords] [varchar](250) NULL,
    [ContentGroup] [varchar](50) NULL,
    [LastModified] [smalldatetime] NULL,
    [LastChecked] [smalldatetime] NULL,
 CONSTRAINT [PageHeader_key0] PRIMARY KEY CLUSTERED 
(
    [PageHeaderID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

- Copying to [dbo].[PageHeader] (Error)
Messages
错误0xc0202009:数据流任务1:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。
OLE DB记录可用。来源:“Microsoft SQL Server本机客户端11.0”Hresult:0x80004005说明:“该语句已终止。”。
OLE DB记录可用。来源:“Microsoft SQL Server本机客户端11.0”Hresult:0x80004005说明:“无法在具有唯一索引“PageHeader_key1”的对象“dbo.PageHeader”中插入重复的键值行。重复的键值为(1,search.aspx?Q=Franck M)。”
(SQL Server导入和导出向导)

错误0xc0209029:数据流任务1:SSIS错误代码DTS_E_诱导的数据传输失败报告错误。>“Destination-PageHeader.Inputs[Destination Input]”失败,因为发生了错误代码0xC020907B,“Destination-PageHeader.Inputs[Destination Input]”上的错误行处理指定错误时失败。指定组件的指定对象上发生错误。在此之前可能会发布错误消息,其中包含有关故障的更多信息。
(SQL Server导入和导出向导)

错误0xc0047022:数据流任务1:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“Destination-PageHeader”(43)上的ProcessInput方法在处理输入“Destination input”(56)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关故障的更多信息。
(SQL Server导入和导出向导)

错误0xc0202009:数据流任务1:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。
OLE DB记录可用。来源:“Microsoft SQL Server本机客户端11.0”Hresult:0x80004005说明:“该语句已终止。”。
OLE DB记录可用。来源:“Microsoft SQL Server本机客户端11.0”Hresult:0x80004005说明:“无法在具有唯一索引“Keywords_key1”的对象“dbo.Keywords”中插入重复的键值行。重复的键值为(1,Google.co.jp,?200/mab137r)。”
(SQL Server导入和导出向导)

错误0xc0209029:数据流任务1:SSIS错误代码DTS_E_诱导传输失败错误。“Destination-Keywords.Inputs[Destination Input]”失败,因为发生了错误代码0xC020907B,“Destination-Keywords.Inputs[Destination Input]”上的错误行处理指定错误时失败。指定组件的指定对象上发生错误。在此之前可能会发布错误消息,其中包含有关故障的更多信息。
(SQL Server导入和导出向导)

错误0xc0047022:数据流任务1:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“Destination-Keywords”(28)上的ProcessInput方法在处理输入“Destination input”(41)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关故障的更多信息。
(SQL Server导入和导出向导)

错误0xc02020c4:数据流任务1:尝试向数据流任务缓冲区添加行失败,错误代码为0xC0047020。
(SQL Server导入和导出向导)

错误0xc0047038:数据流任务1:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。源关键字上的PrimeOutput方法返回错误代码0xC02020C4。当管道引擎调用PrimeOutput()时,组件返回了故障代码。故障代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关故障的更多信息。
(SQL Server导入和导出向导)


新数据库可能区分大小写?不同的排序规则?为什么不备份数据库,然后将其还原到另一台服务器上,或者只是分离/停止sql server,复制数据库文件并将副本附加到另一台服务器上。PK创建为
PageHeader\u key0
Keywords\u key0
,但是错误消息是针对名为
PageHeader\u key1
关键字\u key1
的约束的。你确定你的源和目的地设置正确吗?Aaron-很好的建议,但是…排序规则是相同的:“SQL\u Latin1\u General\u CP1\u CI\u AS”。Ralf-我没有注意到这一点,但我再次检查了,表是相同的。我用过管理工作室
CREATE TABLE [dbo].[Keywords](
    [KeywordID] [int] IDENTITY(1,1) NOT NULL,
    [SiteKey] [smallint] NOT NULL,
    [SearchEngine] [varchar](50) NOT NULL,      
    [Keywords] [varchar](150) NOT NULL,
 CONSTRAINT [Keywords_key0] PRIMARY KEY CLUSTERED 
(
    [KeywordID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_PADDING OFF
GO

- Copying to [dbo].[Keywords] (Error)
Messages