create table #(code varchar(20),value int)
declare @sql varchar(200)
set @sql='insert into # select ''AAA'',10'
-- AAA之前的一对单引号与之后的一对单引号分别代表一个单引号
print @sql --查看这个字符串的实际内容
/*
insert into # select 'AAA',10
*/
exec(@sql)
select * from #
/*
code value
-------------------- -----------
AAA 10
*/
--如果需要insert一个值为"A'AA"的字符串,如下:
set @sql='insert into # select ''A''''AA'',10'
--两层嵌套的字符串内部,一个单引号需要经过两次转义,于是变成了4个单引号
print @sql --查看这个字符串的实际内容
/*
insert into # select 'A''AA',10
*/
exec(@sql)
select * from #
/*
code value
-------------------- -----------
AAA 10
A'AA 10
*/
drop table #