本文轉自:http://blog.csdn.net/sikaiyuan2008/article/details/7848926
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)+''''
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)+''''
print @s
exec(@s)
執行:
exec Test @TestID=1
執行結果: