SQL Server 中字符串中包含字符串變量的表示方法


 在代碼中有如下的需求:需要在數據庫中使用 in 關鍵字做刪除的時候,又需要使用到參數化,參數又是字符串,所以使用的時候就按照如下方式

1             StringBuilder sql = new StringBuilder("exec('delete from Base_SysMenu where Menu_Id in('+ @ids+')') ");
2             SqlParam[] sp ={
3                                    new SqlParam("@ids",ids)
4                             };
  數據庫中的執行方式如下:
  exec sp_executesql N'exec(''delete from Base_SysMenu where Menu_Id in(''+ @ids+'')'') ',N'@ids varchar(20)',@ids='''201603020530536752'''

經過以上需求后,總結:

  在SQL字符串是以單引號作為分界符的,在字符串前面和后面各一個單引號。但是字符串中也能包含單引號,為了使語法分析器能夠區分字符串中的單引號還是分界符。規定當字符串中出現單引號時,在其前面添加一個單引號作為區分。也就是說, 在單引號分隔的字符串中,兩個連續的單引號''表示一個單引號字符。

  參考實例:

declare @ids varchar(50)='''201603020530536752'''
exec( 'select * from Base_SysMenu where menu_id in('+@ids+')')

 


免責聲明!

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



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