Sql server 2008 SQL违反主键约束复制

Sql server 2008 SQL违反主键约束复制,sql-server-2008,sql-server-2012,database-replication,Sql Server 2008,Sql Server 2012,Database Replication,我正在尝试在sql server 2008和2012之间进行复制 我以前在2008年和2008年之间做过这件事,服务器工作得非常好 现在,当我将发布类型设置为snapshot,并将其作为从分发服务器推送到订阅服务器时,我得到了一个错误 违反主键约束“PK_uutablef_uu4ebd61d204e4BC85”。无法在对象“dbo.table”中插入重复键。重复的键值为(0)。(来源:MSSQLServer,Numéro d'erreur:2627) 奥贝尼尔·德莱德: 即使我只选择了一个表进行

我正在尝试在sql server 2008和2012之间进行复制 我以前在2008年和2008年之间做过这件事,服务器工作得非常好

现在,当我将发布类型设置为snapshot,并将其作为从分发服务器推送到订阅服务器时,我得到了一个错误

违反主键约束“PK_uutablef_uu4ebd61d204e4BC85”。无法在对象“dbo.table”中插入重复键。重复的键值为(0)。(来源:MSSQLServer,Numéro d'erreur:2627) 奥贝尼尔·德莱德:

即使我只选择了一个表进行复制,但我总是遇到同样的问题,即创建了数据库的模式,但表中没有数据 我试着给桌子上色,但它不起作用。 请问我能做什么?
谢谢

我一直都有这个问题 我试图写一个脚本,而不是使用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
执行时,我收到一条警告:“警告:分发代理的工作是隐式创建的,将在SQLServer代理的服务帐户下运行。”

如果我检查订阅服务器,我发现模式被复制了,取而代之的是表中有418行,我有4012行,表是空的,除了NOTNULL属性是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
附言:我只选择了一篇文章来复制,那就是ClientEssai表 发布者和分发者是2008实例 订户2012 我在推 我用的是同一个账户 是否有特定的配置要执行?
谢谢

你能把出版物和文章写下来,粘贴到这里吗?希望查看您设置了哪些选项。抱歉,我不明白如何编写出版物的脚本?