其實呢,在寫 sql 之前加上這句 SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO 就不區分大小寫和單\雙引號 這樣你在寫sql時就能避免了 ' " 的問題,而且有時候也能使程序的易讀性增強
假如 我在 程序当中 是用双引号 包起来的 也是这个原则吗 ?? string str="select ...." 该怎么去写 ?象这样的 set @sqlStr=@sqlStr+' and FJobAdd = '+''''+@FJobAdd + '''' 我要把等号 换成 模糊查询 我的 2个 % 该怎么写 ? set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%'' 这样写对吗?对于 楼上几位 回答的? 我还是 不清楚 ?? 能不能 详细点.....................
把 set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%'' /*这里错了*/ 改为: set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + '%''' 再简化一下: set @sqlStr=@sqlStr+' and FJobAdd like % '''+@FJobAdd + '%'''
set @sqlStr=@sqlStr+' and FJobAdd like '+ '''%'+@FJobAdd + '%'''
1.假设要执行下面的SQL语句: select * from table where 1=1 and FJobAdd like '%xyz%' 2.变成字符串就是:(为了易于理解及看起来不致混乱,先用双引号表示字符串) "select * from table where 1=1 and FJobAdd like '%xyz%'" 3.把'xyz'换成变量: set @FJobAdd = 'xyz' "select * from table where 1=1 and FJobAdd like " + "'%" + @FJobAdd + "%'" 4.根据转换规则,把字符串内的每个单引号转换成一对单引号: "select * from table where 1=1 and FJobAdd like " + "''%" + @FJobAdd + "%''" 5.把字符串用单引号表示: 'select * from table where 1=1 and FJobAdd like ' + '''%' + @FJobAdd + '%'''
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
就不區分大小寫和單\雙引號
這樣你在寫sql時就能避免了 ' " 的問題,而且有時候也能使程序的易讀性增強
是用双引号 包起来的 也是这个原则吗 ??
string str="select ...." 该怎么去写 ?象这样的 set @sqlStr=@sqlStr+' and FJobAdd = '+''''+@FJobAdd + ''''
我要把等号 换成 模糊查询 我的 2个 % 该怎么写 ?
set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%'' 这样写对吗?对于 楼上几位 回答的? 我还是 不清楚 ?? 能不能 详细点.....................
set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%'' /*这里错了*/
改为:
set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + '%'''
再简化一下:
set @sqlStr=@sqlStr+' and FJobAdd like % '''+@FJobAdd + '%'''
' and FJobAdd like '----------左右两边的' ' 代表符号, 就跟字符串中 String str=" "; 用这个包起来,SQL 中 ' '包起来' ''%'+@FJobAdd + '%'' ' ----------左右两边的' ' 代表符号 '' %'+@FJobAdd + '% '' ----- sql 中 一个' 用一对 '' 替换,所以 '' 就看成是 一个 ' %'+@FJobAdd + '% --------------中间 还有 ' ' 一对单引号 ,是对 @FjobAdd 而言的吗 ??[][][]][你们 能 分解 这个例子 给我讲讲吗 ?? 还是不懂 EXEC('SELECT replace(FNameen,''"'','''''''')AS FNameen FROM 表') 这个也是 ' ' " ' ' , ' ' ' ' ' ' ' '
1 2 3 4 5 6 7 8 9 a b c d SQLSERVER规定:被单引号括起来的字符串中的每个单引号必须转换成一对单引号
所以 12 看作是一个 '
45 看作是一个'
[][][]后面的 我就 看不懂了..........................我是菜鸟中的菜鸟 各位仁兄一定要将详细点 ?
select * from table where 1=1 and FJobAdd like '%xyz%'
2.变成字符串就是:(为了易于理解及看起来不致混乱,先用双引号表示字符串)
"select * from table where 1=1 and FJobAdd like '%xyz%'"
3.把'xyz'换成变量:
set @FJobAdd = 'xyz'
"select * from table where 1=1 and FJobAdd like " + "'%" + @FJobAdd + "%'"
4.根据转换规则,把字符串内的每个单引号转换成一对单引号:
"select * from table where 1=1 and FJobAdd like " + "''%" + @FJobAdd + "%''"
5.把字符串用单引号表示:
'select * from table where 1=1 and FJobAdd like ' + '''%' + @FJobAdd + '%'''