拼接SQL执行语句时,对单引号的处理

例:

declare @SQL nvarchar(1000);

declare @str nvarchar(100);

set @str=‘Joe‘‘s NB‘;  // 打印出来的应该是这样:Joe‘s NB

set @SQL=‘select * from table where t1=‘‘‘ + @str + ‘‘‘‘;

print(@SQL);  // 打印SQL语句看看是否正确

exec (@SQL);

===============================================

在执行语句前,单引号应变为两个单引号才正确,否则你打印出来的语句这行就有问题。

如果传入的字符串是单引号的,你可以用REPLACE替换掉

如:

string str=“Joe‘‘s NB”;

在SQL里你可以这样

@str=REPLACE(@str,‘‘‘‘,‘‘‘‘‘‘);  //   @strt对应值str

时间: 2024-10-24 10:26:03

拼接SQL执行语句时,对单引号的处理的相关文章

Sqlite代写、SQL执行语句代写

Sqlite代写.SQL执行语句代写SQL Assignment 2 (20%)Questions:1. Produce a table showing the total books that are currently "CheckedOut" by every major. Show theMajor and "Total Books Checkedout" in the query result and sort the "Total Books

SQL语句中有关单引号、双引号和加号的问题

字符串数据是用单引号包在外面的,而+号只是用来连接这些字符串的. 数据库里的字段是整型的时候不要加单引号,是字符串的时候要加,其它类型根据实际情况来,双引号就是用来拼接字符串的,单引号是sql文的固有写法,因为你要动态的来拼接,涉及到变量,所以要用"+"来组合各个字符串片段.最终结果无非就是得出能在数据库查询分析器中执行的sql文. String sql = "insert into student values ( " + student.getId() + &q

【转】通过xml处理sql语句时对小于号与大于号的处理转换

当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误. 这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理.其实很简单,我们只需作如下替换即可避免上述的错误: 原符号   <    <=    >    >=     &      '       " 替换符号 < <= &

java项目中, mybatis的sql XML文件,在写sql语句时,大于号小于号转义

因为这个是xml文件不允许出现类似">"这样的字符 用了转义字符把>和<替换掉,然后就没有问题了. XML转义字符 字段 符号 说明 &lt ; < 小于号 &gt ; > 大于号 &amp ; & 和 &apos ; ' 单引号 &quot ; " 双引号 原文出处 http://blog.csdn.net/qq_28587263/article/details/54138998

ASP,VB,JAVASCRIPT 拼HTML时多层单引号双引号嵌套用法,实用(转载)

s.html中的单引号.双引号及其转义使用(转) 收藏   在js中对相关字符做判断或取值,或者拼HTML赋值的时候很多情况下都会用到这些,也是我刚刚遇到的问题,通过参考下面的这篇文章,一切都解决了,摘抄下来做个笔记!呵呵... ------ 在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:<input value="Test" type="button" onclick="alert(""OK"&q

数据库执行语句时,严重注意类型转换的问题

这次上线遇到一个bug,导致回滚.定位到问题,发现是sql执行时一个语句坑了. 简单说下,就以update语句为例. 创建一个表: CREATE TABLE `test_01` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'auto incr id', `a_id` varchar(50) NOT NULL DEFAULT ' ' COMMENT 'aid', `a_name` varchar(50) NOT NULL DEFAULT '

JAVA时的单引号和双引号及String和char的区别

单引号引的数据 是char类型的双引号引的数据 是String类型的单引号只能引一个字符而双引号可以引0个及其以上 *************** char定义时用单引号,只能有一个字母,数字.char c='c';而String用双引号,可以是一个,也可能是多个字母,汉字等.就是所谓的字符串.String s="adsaf";char只是一个基本类型,而String 是一个类,可以直接引用.比如char c='c';不能直接对c调用方法.String s="abc"

Ubuntu18.04系统执行语句时出现错误Failed to load module &quot;canberra-gtk-module&quot;

Ubuntu18.04系统执行gnuradio-companion时,命令行提示错误Failed to load module "canberra-gtk-module",虽然看起来不影响使用,但是总觉得别扭. 解决办法:命令行输入: sudo apt install libcanberra-gtk-module 原文地址:https://www.cnblogs.com/jsdy/p/11428925.html

MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)

官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储过程拼接 2.函数拼接 3.视图里拼接 4.当前查询的session中使用 其实上面都是同一个意思,就是使用一个变量存取这个SQL,然后再执行这个变量. 样例: set @stmt = concat('select * from ',table_name,' limit ?,?'); prepare