sql字符串變量拼接


SQL SERVER拼接字符串(字符串中有變量)  總是忘記規律,轉載過來以幫助記憶。

 

一、拼接字符串(整個字符串不分割)步驟:

首先在字符串的前后加單引號;

字符串中的變量以'''+@para+'''在字符串中表示;

若在執行時存在類型轉換錯誤,則應用相應的類型轉換函數,對變量進行類型轉換(如cast()函數)。

示例均采用northwind數據庫。

示例一:

包含SQL拼接字符串的存儲過程:

Create Procedure Test
 @TestID  int
As
Declare @s nvarchar(800)
Set @s='Select * From dbo.Categories where CategoryID='''+cast(@TestID as varchar)+''''

/* 我在使用中,這樣做時候,提示錯誤。*/

/*Set @s='Select * From dbo.Categories where CategoryID=cast('''+@TestID+''' as varchar)' 這樣的話,才成功

*/
print @s
exec(@s)

執行:

exec  Test  @TestID=1

執行結果:

 

二、拼接字符串(字符串分割)步驟:

將不包含變量的字符串前后用單引號括起來,

不含變量的字符串與變量用+進行拼接

變量用''''+@para+''''進行表示(@para為變量名);

若執行存儲過程時出現類型轉換錯誤,則采用相應的類型轉換函數進行轉換。

示例采用northwind數據庫。

示例二:

包含SQL 字符串的存儲過程:

Create Procedure Test
 @TestID  int
As
Declare @s nvarchar(800)
Set @s='Select * From dbo.Categories where CategoryID='+''''+cast(@TestID as varchar)+''''

/*我按照下面寫法,才通過

Set @s='Select * From dbo.Categories where CategoryID=cast('+''''+@TestID+''''+‘ as varchar)’

*/

print @s
exec(@s)

執行:

exec  Test  @TestID=1

執行結果:

 


免責聲明!

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



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