Update T_TB set re = 'Mike''s computer' where id = 3 --建立測試環境 create table T_TB (re varchar(50)) insert into T_TB select 'Mike'+''''+'s computer' --測試 update T_TB set re= replace(re ,'''','''''') --刪除測試環境 drop table T_TB
那如果在SQL执行之前,将SQL语句完成化呢? 如果用Replace,怎样来区分单引号在SQL语句中是属于字任串的开始与结束的标志还是单纯的一个字符. 如 Update T_TB set re = 'Mike's computer' where id = 3 replace 之后不就成了 Update T_TB set re = ''Mike''s computer'' where id = 3
或者这样Update B Set B.re=A.re from T_TB B Inner Join T_TA A On B.id=A.id
set @s='Mike''s computer'
exec('Update T_TB set re = '''+@s+''' where id = 3')
我的意思是如果使SQL语句中单引号被SQL解释为一个字符.如果我在用户界面上的一个录入
框写入 Mike's computer 用Update 或Insert 如果能够生效,当然,程序不作任何处理,由SQL来解决.
--建立測試環境
create table T_TB (re varchar(50))
insert into T_TB
select 'Mike'+''''+'s computer'
--測試
update T_TB set re= replace(re ,'''','''''')
--刪除測試環境
drop table T_TB
如果用Replace,怎样来区分单引号在SQL语句中是属于字任串的开始与结束的标志还是单纯的一个字符.
如
Update T_TB set re = 'Mike's computer' where id = 3
replace 之后不就成了
Update T_TB set re = ''Mike''s computer'' where id = 3