2015-04-06 74 views
1

我工作的SQL在SQL Server和碰到过这样的问题,其中,sp_executesql的不显示期望的结果

set @sqlString=N'select @max=MAX('[email protected]+') from @temp'; 
exec sp_executesql @sqlString, 
      N'@temp as Table_Type readonly, @max nvarchar(max)', @temp ,@max; 

我已经测试过这条SQL语句没有参数,这是工作,但这样它显示在空@最大。 请帮我解决我哪里错了!

+0

什么是@columnName? – 2015-04-06 06:03:33

+0

它是一个包含表的列名的变量..并且@temp是一个相同表类型的临时变量。 – Sarthak 2015-04-06 06:11:51

回答

4

您需要指出max参数是output。试试这个:

set @sqlString=N'select @max=MAX('[email protected]+') from @temp'; 
exec sp_executesql @sqlString, 
      N'@temp as Table_Type readonly, @max nvarchar(max) output', @temp ,@max output; 

你也可以检查this的例子。