我正在尝试在sql server 2008到2012之间进行复制 我在2008服务器之间完成了这项工作并且完美运行
现在,当我将发布类型设置为快照,并将其作为从分发服务器推送到订阅服务器时,我收到错误
违反PRIMARY KEY约束'PK__tableF__4EBD61D204E4BC85'。无法在对象'dbo.table'中插入重复键。重复键值为(0)。 (来源:MSSQLServer,Numérod'erreur:2627) Obtenir de l'aide:http://help/2627
即使我只选择了一个要复制的表,我总是遇到同样的问题,但是创建了数据库的模式,但表中没有数据 我试图恢复表,但它不起作用。 请问我该怎么办? 感谢
答案 0 :(得分:0)
我总是遇到这个问题 我试着写一个脚本而不是使用wisard
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @frequency_type as int;
DECLARE @subscriber_security_mode as int;
DECLARE @subscriber_login AS sysname;
DECLARE @subscriber_password AS sysname;
SET @publication = N'8-9' ;
SET @subscriber =N'APPLI-SERV-EXT';
SET @subscriptionDB = N'89' ;
SET @subscriber_security_mode= 1;
SET @subscriber_login=N'xxx';
SET @subscriber_password=N'xxxx';
--Add a push subscription to a transactional publication.
USE [DBName]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push';
EXEC sp_addpushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscriber_security_mode=@subscriber_security_mode,
@subscriber_login=@subscriber_login,
@subscriber_password=@subscriber_password,
@frequency_type = @frequency_type,
@job_login = N'xxxx',
@job_password = N'xxx';
GO
执行时我收到警告"警告:分发代理的工作是隐式创建的,并且将在SQL Server代理的服务帐户下运行。"
如果我检查订阅者,我发现模式已被复制,而在表中有一个418行,我有4012并且表是空的,除了一个非null属性为0 这是表格的脚本
USE [test]
GO
/****** Object: Table [dbo].[clientEssai] Script Date: 15/09/2015 15:13:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[clientEssai](
[client_id] [int] NOT NULL,
[client_name] [varchar](255) NULL,
[contact_name] [varchar](255) NULL,
[tel] [varchar](255) NULL,
[gsm] [varchar](255) NULL,
[email] [varchar](255) NULL,
[adress] [varchar](255) NULL,
[registration_date] [date] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
P.S:我只选择了一篇要复制的文章,即ClientEssai表 出版商和经销商是2008年的实例 订阅者2012 我正在推动 我和代理商使用相同的帐户 是否有特定的配置要做? 谢谢