SQL 的轉義字符是:'(單引號)


SQL 的轉義字符是:'(單引號)

例:select * from tbl where uyear='''06'

請注意其中紅色背景的單引號,它即表示轉義字符,如果我們省略,則整個語句會出錯,轉義字符不會輸出,上例中 uyear 的實際條件值為 '06,而不是 ''06

為什么不能省略呢,假如我們省略,上句變成:select * from tbl where uyear=''06'

由於在 SQL 中單引號表示字符串的開始和結束符號,於是?SQL 解釋器會認為語句中灰色背景的為字符串,其后的語句顯然是個錯誤的語句,當然會報錯,為了解決字符串的單引號問題,就出現了轉義字符單。

sql server有兩個轉義符: ' 默認情況下, '是字符串的邊界符, 如果在字符串中包含', 則必須使用兩個', 第1個'就是轉義符

另一個轉義符是"
SET QUOTED_IDENTIFIER OFF時, "是字符串邊界符, 字符串中的"必須用兩個"表示。
vb: "" <=> " sql server 2000: ''' <=> '

sql server 2000:""" <=> "

eg:

declare @SearchType nvarchar(50) declare @SearchString nvarchar(255) declare @SearchKey nvarchar(50) declare @SearchSql nvarchar(2000)

set @SearchType = '2' set @SearchKey = 'd'

set @SearchString = CASE @SearchType when '1' then '1 = 1' when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + '''' when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +'''' when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + '''' when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +'''' END

set @SearchSql = N'

SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and ' ? ?+ @SearchString

print(@SearchSql)

exec(@SearchSql)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM