【发布时间】:2015-10-18 20:40:59
【问题描述】:
在简化版本中,我正在尝试做类似的事情:
Set @datepart = 'DATEPART(year, myDate)'
Set @SQLQuery = 'SELECT @datepart AS TIME
FROM someTable
GROUP BY @datepart'
Execute sp_executesql @SQLQuery, N'@datepart nvarchar(1000)', @datepart
但我明白了:
每个 GROUP BY 表达式必须至少包含一列 外部参考。
如果我不对其进行参数化,它就可以工作,意味着
Set @SQLQuery = 'SELECT ' + @datepart + ' AS TIME
FROM someTable
GROUP BY ' + @datepart
Execute sp_executesql @SQLQuery
【问题讨论】:
标签: sql-server tsql dynamic-sql sp-executesql