sp_executesql中的变量

时间:2017-05-27 07:40:02

标签: sql-server dynamic-sql sp-executesql

我有一段代码:

DECLARE @v int;  
DECLARE @SQLString nvarchar(500);  
DECLARE @ParmDefinition nvarchar(500);  
DECLARE @max_title varchar(30);  

SET @IntVariable = 197;  
SET @SQLString = N'SELECT @max_titleOUT = max(JobTitle)   
   FROM some_table 
   WHERE name = @level';  
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';  

EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @v, @max_titleOUT=@max_title OUTPUT;  
SELECT @max_title;  

我对这一行感到有些困惑:

       WHERE name = @level';

如果@v是字符串而不是int变量,那么我应该像这样在@level附近加上引号吗?

       WHERE name = ''@level''';

我应该何时在@SQLString

内的变量周围加上引号

1 个答案:

答案 0 :(得分:2)

不,@level@v是变量。你不应该引用引号。

  

我应该何时在@SQLString中的变量周围加上引号?

无处