【问题标题】:How to get value for Temp variable in Sql?如何在 Sql 中获取 Temp 变量的值?
【发布时间】:2011-12-15 04:59:33
【问题描述】:

我在 sql server 中编写了一个查询,我在一个临时变量中获取值,这是我的查询

  declare @tacolumn1 varchar(50)='cargo'
 declare @temp1 varchar(50)
 declare @sql nvarchar(max)
 print @tacolumn1
set @sql=  ('select '+@tacolumn1+' from operatingincome where YEAR(createddate)= 2009')
exec sp_executesql  @sql  
print @temp1

上面的@sql 有值,现在我想将该值保存在@temp1 中,我该怎么做呢

【问题讨论】:

标签: sql-server


【解决方案1】:

sp_executesql过程can have输入输出参数:

DECLARE @IntVariable 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 AdventureWorks2008R2.HumanResources.Employee
   WHERE BusinessEntityID = @level';
SET @ParmDefinition = N'@level tinyint, @max_titleOUT varchar(30) OUTPUT';

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

【讨论】:

  • 它给出的错误如下:必须声明标量变量“@temp1”。
  • 对不起,我没有检查我的答案。我适合。
猜你喜欢
  • 1970-01-01
  • 2016-07-08
  • 2019-03-13
  • 1970-01-01
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
相关资源
最近更新 更多