【问题标题】:Printing within dynamic sql [duplicate]在动态 sql 中打印 [重复]
【发布时间】:2014-11-19 04:44:49
【问题描述】:

我在存储过程中有以下位 -

DECLARE @SQL varchar(5000)

SET @SQL = 'select count(*) as "Total Population" from [dbo].[Final_Results]'

EXEC (@SQL)

我在网上浏览了一些内容,但我仍然对在此处使用 Set Versus Select 的优缺点感到困惑。那么有人可以帮我吗?

我还想在打印语句中返回“EXEC (@SQL)”的结果。也需要一些指示。

谢谢。

【问题讨论】:

  • 在将变量设置为文字字符串时,设置或选择无关紧要。
  • SETSELECT 在此设置中确实没有区别。我个人使用SET,因为它更清楚我在做什么。
  • @Siyual/ @Dave.Gugg - 我还想在打印语句中返回“EXEC (@SQL)”的结果。请您帮忙。
  • 只是为 Dave 和 Siyual 所说的添加一些内容,如果您使用 SET,您的代码的读者很清楚您正在做一个微不足道的分配,他不必寻找该行中有更复杂的东西。

标签: sql sql-server sql-server-2008


【解决方案1】:

这将打印您的结果,而不是在网格视图中选择:

DECLARE @SQL varchar(5000)

SET @SQL = 'declare @count bigint 
            select @count = count(*) from [dbo].[Final_Results] 
            print ''Count of Total Result Population = '' + cast(@count as varchar(20))'

EXEC (@SQL)

【讨论】:

  • 谢谢。我想打印类似“总结果人口数 = x”的内容。我怎样才能得到相同的?
  • 根据您的新规范更新
  • @0nir - 你应该更新问题标题以反映新问题 - 它是关于在动态 sql 中打印,而不是关于 set vs select。
  • @AaronBertrand - 谢谢,我已经更新了。
猜你喜欢
  • 2016-03-04
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 2013-09-28
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多