首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL更新查询出错

SQL更新查询出错
EN

Stack Overflow用户
提问于 2012-05-07 18:50:51
回答 5查看 127关注 0票数 3

下面的查询抛出错误。请帮帮我&告诉我错误是什么。

此查询返回以下结果:

代码语言:javascript
复制
string sqlcmd = "UPDATE branch SET brac_subj = " + query_data + " WHERE (braid = "+dd_branch+")";

     UPDATE branch SET brac_subj = "'11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21'" WHERE (braid = 1) 

如何以以下格式存储字符串:

代码语言:javascript
复制
'11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21' 
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-05-08 03:21:20

您遇到的问题称为Enigma转义。由于单引号是一个受限制的字符,并在SQL中定义了字符串的开头,因此不能在同一字符串中按原样使用它。

除此之外,您似乎认为SQL Server使用双引号来定义字符串,但事实并非如此。

此语法将不起作用:

代码语言:javascript
复制
UPDATE branch SET brac_subj = "'11' , '12' , '13'"

此语法将起作用:

代码语言:javascript
复制
UPDATE branch SET brac_subj = '''11'' , ''12'' , ''13'''

诀窍是使用您的编程代码在值周围添加那些额外的撇号,从而得到其他所有人都建议的答案。

此外,测试此语法的一种简单方法是使用简短的select语句:

代码语言:javascript
复制
SELECT "'11' , '12' , '13'"

vs

代码语言:javascript
复制
SELECT '''11'' , ''12'' , ''13'''
票数 2
EN

Stack Overflow用户

发布于 2012-05-07 19:05:20

如果您想将其作为字符串。这应该是可行的:

代码语言:javascript
复制
query_data="'"+query_data.Replace("'","''")+"'";

如果您希望它们作为此"11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21"。然后像这样做:

代码语言:javascript
复制
query_data="'"+query_data.Replace("'","")+"'";
票数 1
EN

Stack Overflow用户

发布于 2012-05-07 19:03:28

将每个撇号替换为两个,如果您想要"duncan o'toole“,那么在sql查询中使用'duncan o''toole‘应该可以

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10480746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档