一条插入命令

湖中仙人 2008-11-10 08:26:24
下面的这条SQL语句如何插入,一行对应一个字段,我的问题就是如何把 违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。作为一个字段内容插入,因为中间有'号,而且字符的长度不确定
insert into POProblem
values
(
'6043266',
'0001',
'违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。',
'H0008'
)
提示:'PK_POLOAD' 附近有语法错误。
...全文
102 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
underlemontree 2008-11-10
  • 打赏
  • 举报
回复

alter table POProblem alter column 第三列列名 varchar(1000)
insert into POProblem
values
(
'6043266',
'0001',
'违反了 PRIMARY KEY 约束 ''PK_POLOAD''。不能在对象 ''POLOAD'' 中插入重复键。语句已终止。',
'H0008'
)
select * from POProblem
幸运的意外 2008-11-10
  • 打赏
  • 举报
回复
insert into POProblem
values
(
'6043266',
'0001',
'违反了 PRIMARY KEY 约束 '''PK_POLOAD'''。不能在对象 '''POLOAD''' 中插入重复键。语句已终止。',
'H0008'
)
替换红色字的那一行就行了.
ying_wzm 2008-11-10
  • 打赏
  • 举报
回复
其二:现在要导入到表里的数据存在重复值,可先用检查数据,删除重复值再导入,select count(*) as sums,主键 from 表 order by 主键 having by count(*)>1:
ying_wzm 2008-11-10
  • 打赏
  • 举报
回复
两种存在的可能性:

其一:原先表里已经存有现在要导入表里的数据:
hyde100 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hyde100 的回复:]
引用 4 楼 Herb2 的回复:
写错了,应该是针对你的变量。
你肯定是用变量存储下面的串,然后拼SQL语句,
假设“违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。”
存在变量 @error 中
则用前进行替换: set @error = replace(@error,'''','''''')


SQL code1、将参数里的'用''来替换,因为在字符串里是用双引号来代替单引号的
2、因为此字符串长度不固定,所以要将该当字符…
[/Quote]
如果估计的不错的话,楼主这段程序是用在捕捉应用程序里的错误信息并插入到数据库的,错误信息长度却不固定,所以才有这样的问题
律己修心 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Herb2 的回复:]
存在变量 @error 中
则用前进行替换: set @error = replace(@error,'''','''''')
[/Quote]

up
hyde100 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Herb2 的回复:]
写错了,应该是针对你的变量。
你肯定是用变量存储下面的串,然后拼SQL语句,
假设“违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。”
存在变量 @error 中
则用前进行替换: set @error = replace(@error,'''','''''')
[/Quote]
1、将参数里的'用''来替换,因为在字符串里是用双引号来代替单引号的
2、因为此字符串长度不固定,所以要将该当字符串存储的类型设为不固定,varchar(max)或nvarcahr(max)
水族杰纶 2008-11-10
  • 打赏
  • 举报
回复
'POLOAD'
'-->''
surpass63 2008-11-10
  • 打赏
  • 举报
回复
学习~
天鸽 2008-11-10
  • 打赏
  • 举报
回复

var str: string;
str:= '违反了 PRIMARY KEY 约束 PK_POLOAD。不能在对象 POLOAD 中插入重复键。语句已终止。'
insert into POProblem(对应的字段)
values
(
''6043266'',
+''0001'',
+str,
+'H0008'
)
天鸽 2008-11-10
  • 打赏
  • 举报
回复
insert into POProblem(对应的字段)
values
(
'6043266',
'0001',
'违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。',
'H0008'
)
Herb2 2008-11-10
  • 打赏
  • 举报
回复
写错了,应该是针对你的变量。
你肯定是用变量存储下面的串,然后拼SQL语句,
假设“违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。”
存在变量 @error 中
则用前进行替换: set @error = replace(@error,'''','''''')
Herb2 2008-11-10
  • 打赏
  • 举报
回复
用''替换'就行了
replace('违反了 PRIMARY KEY 约束 'PK_POLOAD'。不能在对象 'POLOAD' 中插入重复键。语句已终止。', '''','''''')
hyde100 2008-11-10
  • 打赏
  • 举报
回复

--将表POProblem 第三个字段设为nvarchar(max)
insert into POProblem 
values
(
'6043266',
'0001',
'违反了 PRIMARY KEY 约束 ''PK_POLOAD''。不能在对象 ''POLOAD'' 中插入重复键。语句已终止。',
'H0008'
)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧