当前位置: 代码迷 >> Sql Server >> 关于exec 执行时的特殊字符有关问题,
  详细解决方案

关于exec 执行时的特殊字符有关问题,

热度:95   发布时间:2016-04-27 15:32:44.0
关于exec 执行时的特殊字符问题,高手请进!!!
表:
CREATE   TABLE   [dbo].[p_group_prv]   (
[groupid]   [varchar]   (32)   COLLATE   Chinese_PRC_CI_AS   NOT   NULL   ,
[privilege]   [varchar]   (32)   COLLATE   Chinese_PRC_CI_AS   NOT   NULL  
)   ON   [PRIMARY]


存储过程:
create   proc   addinfo  

@@aa   varchar(20)
@@bb   varchar(20)

as

declare   @tablename   varchar(20)

set   @tablename= 'p_group_prv '

exec( '   insert   into     '[email protected]+ '   values( ' ' '[email protected]+ ' ' ', ' ' '[email protected]+ ' ' ') ')

go


我在应用程序里调用该存储过程一般情况下没有问题   ,但如果传给存储过程的两个参数里含有   '   时就会出错,请问如何解决

------解决方案--------------------
可以替换一下先,将一个 '变成两个 ' '

set @aa = replace(@aa, ' ' ' ', ' ' ' ' ' ')
------解决方案--------------------
可是我不知道是否只有 ' 这个特殊字符时会报错,有没有一个公用的方法能把所有的特殊字符格式化

---------------------------

只有这个字符( ')会报错,这是SQL里字符串的界定符,只能成对出现,写字符串时,如果字符串出现的( '),要用两个( ')表示,可以理解第一个( ')为转义符,例如:
print 'Let ' 's go '
  相关解决方案