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
执行结果: