Z
zhjwjan
Unregistered / Unconfirmed
GUEST, unregistred user!
我在sql server中写存储过程时,很多时候会使用动态sql。在使用到字符串字段时,如果对应
的字符串变量中含有单引号时,就会导致执行sql出错。例如:
exec ( 'insert into '+@table+' (name) values ('''+@name+''')' )
@table和@name是存储过程的参数,如果@name里含有单引号,那么执行这个sql语句一定出错。
我开始时想对每个字符串变量操作前都检查是否含有单引号,有就用2个单引号去替换。
但这样不可行,因为太多动态sql,太多字符串字段了。
请问应该怎样做才能解决这个问题?
的字符串变量中含有单引号时,就会导致执行sql出错。例如:
exec ( 'insert into '+@table+' (name) values ('''+@name+''')' )
@table和@name是存储过程的参数,如果@name里含有单引号,那么执行这个sql语句一定出错。
我开始时想对每个字符串变量操作前都检查是否含有单引号,有就用2个单引号去替换。
但这样不可行,因为太多动态sql,太多字符串字段了。
请问应该怎样做才能解决这个问题?