读书人

为什么要这么多的单引号 执行exec Add

发布时间: 2012-02-16 21:30:36 作者: rapoo

为什么要这么多的单引号 执行exec AddProc 'employe','''kkk'','''''
请问有谁知道:下面这个存储过程,自爱执行的时候,当它的值是varchar类型是,为什么要打这么多的单引号?
create proc AddProc(@tableName varchar(50),@value varchar(500)= ' ')
as
declare @sql varchar(60)
set @sql= 'insert into '+@tableName+ ' values( '+@value+ ') '
exec (@sql)

exec AddProc 'admin ', ' ' 'dd ' ', ' '2 ' ' '

exec AddProc 'employe ', ' ' 'kkk ' ', ' ' ' ' '

[解决办法]
如果连续出现'的话,那么就把两个两个的'配对,前面的是转义字符,把转义字符去掉就是实际的值
比如

SQL code
exec   AddProc   'admin ', ' ' 'dd ' ', ' '2 ' ' ' 

读书人网 >IBM DB2

热点推荐