下面的这条SQL语句如何插入,一行对应一个字段,我的问题就是如何把 违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。作为一个字段内容插入,因为中间有'号,而且字符的长度不确定
insert into POProblem 
values 
(
'6043266', 
'0001', 
'违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。', 
'H0008'

提示:'PK_POLOAD' 附近有语法错误。

解决方案 »

  1.   


    --将表POProblem 第三个字段设为nvarchar(max)
    insert into POProblem 
    values 

    '6043266', 
    '0001', 
    '违反了 PRIMARY KEY 约束 ''PK_POLOAD''。不能在对象 ''POLOAD'' 中插入重复键。语句已终止。', 
    'H0008' 

      

  2.   

    用''替换'就行了
    replace('违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。', '''','''''')
      

  3.   

    insert into POProblem(对应的字段) 
    values 

    '6043266', 
    '0001', 
    '违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。', 
    'H0008' 

      

  4.   

    写错了,应该是针对你的变量。
    你肯定是用变量存储下面的串,然后拼SQL语句,
    假设“违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。”
    存在变量 @error 中
    则用前进行替换: set @error = replace(@error,'''','''''')
      

  5.   


    var str: string;
    str:= '违反了 PRIMARY KEY 约束 PK_POLOAD。不能在对象 POLOAD 中插入重复键。语句已终止。'
    insert into POProblem(对应的字段) 
    values 

    ''6043266'', 
    +''0001'', 
    +str,
    +'H0008' 

      

  6.   

    1、将参数里的'用''来替换,因为在字符串里是用双引号来代替单引号的
    2、因为此字符串长度不固定,所以要将该当字符串存储的类型设为不固定,varchar(max)或nvarcahr(max)
      

  7.   

    其二:现在要导入到表里的数据存在重复值,可先用检查数据,删除重复值再导入,select count(*) as sums,主键 from 表 order by 主键 having by count(*)>1: 
      

  8.   

    insert into POProblem 
    values 

    '6043266', 
    '0001', 
    '违反了 PRIMARY KEY 约束 '''PK_POLOAD'''。不能在对象 '''POLOAD''' 中插入重复键。语句已终止。', 
    'H0008' 

    替换红色字的那一行就行了.
      

  9.   


    alter table POProblem  alter column 第三列列名 varchar(1000) 
    insert into POProblem 
    values 

    '6043266', 
    '0001', 
    '违反了 PRIMARY KEY 约束 ''PK_POLOAD''。不能在对象 ''POLOAD'' 中插入重复键。语句已终止。', 
    'H0008' 

    select * from POProblem