存储过程中执行sql语句时如何转义双引号? 100

我的sqlserver版本2008我想实现的效果是将查出来的数据每个表的每个列中的数据前后都去掉双引号,因为我的列数据都是这个样子。如下示例===============... 我的sqlserver版本2008 我想实现的效果是 将查出来的数据每个表的每个列中的数据前后都去掉双引号,
因为我的列数据都是这个样子。如下示例
=====================================================
id | name |
“f325sd” “asdfsdga”
“f3234d” “asd45dga”
=====================================================
而在最后这个sql中的双引号一直有问题,无法转义。。请大家提供一个好的解决方案
如果对于去掉数据中前后双引号有更好的办法还请不吝赐教
展开
 我来答
小狂中E
2013-12-13 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1028万
展开全部
双引号不用转,如果里面有单引号,那就在前面再加一个单引号
如:select replace('"dfdf''df"','"','')
全角的演示一下 select replace( ‘“abc ’’ de ”’,‘“”’,‘’)
追问
你这种写法是没问题的,但是我这是在存储过程中执行的,就会报错,对于第二个参数中不能填写双引号,否则颜色你看也不对。
追答
那是因为你单引号没转义,应该是
@columnname+',''"'','''')'
最外层单引号表示括起来的是串,而串里若有单引号,需要在前面再加一个单引号进行转义
譬如我前面那个select,变成动态的就是
exec('select replace(''"dfdfdf"'',''"'','''')')
汗梓暄乘自
2020-03-05 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:573万
展开全部
你好!
exec('update '+@tableName+' set '+@columnName+' = replace('+@columnName+',''"'','''')')嵌套拼接字符中的单引号处理很麻烦的
仅代表个人观点,不喜勿喷,谢谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-12-13 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5158万
展开全部
exec('update '+@tableName+' set '+@columnName+' = replace('+@columnName+',''"'','''')')

嵌套拼接字符中的单引号处理很麻烦的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ribone
2013-12-13 · 超过32用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:81.6万
展开全部
改成这样试试:
exec('update '+@tableName+' set '+@columnName+' = replace('+@columnName+',''"'','''')')
追问
提示为字符串 ‘)’ 后的引号不完整  不行  编译正常  无法执行
追答
可能是你没复制完整的原因,如果只复制了下面这部分,就会报出你遇到的问题
exec('update '+@tableName+' set '+@columnName+' = replace('+@columnName+',''"'','''')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式