如何在 T-SQL 中动态查询值?
无论出于何种原因,我似乎无法从 SQL 中动态获取值。
declare @SQL nvarchar(max)
declare @FieldName nvarchar(255)
declare @FieldValue nvarchar(max)
select @SQL = 'SELECT TOP 1 ' + @fieldname
+' FROM MyTable WHERE CM_CASE_YEAR = ' + LEFT(@ClaimNumber, 2)
+' AND CM_CASE_NUMBER = ' + RIGHT(@ClaimNumber, 6)
exec sp_executesql @sql, @FieldValue OUTPUT
select @FieldName + ' - ' + @FieldValue
当我在另一个窗口中运行 @SQL
查询时,它显示一列和一个值。
但是,不幸的是,当我尝试这样做时,@FieldValue 总是返回 NULL。
他们教 sp_executesql 那天我错过了什么吗?明显地!但什么?
For whatever reason, I can't seem to get a value out dynamically from SQL.
declare @SQL nvarchar(max)
declare @FieldName nvarchar(255)
declare @FieldValue nvarchar(max)
select @SQL = 'SELECT TOP 1 ' + @fieldname
+' FROM MyTable WHERE CM_CASE_YEAR = ' + LEFT(@ClaimNumber, 2)
+' AND CM_CASE_NUMBER = ' + RIGHT(@ClaimNumber, 6)
exec sp_executesql @sql, @FieldValue OUTPUT
select @FieldName + ' - ' + @FieldValue
When I run the @SQL
query in another window, it displays one column with one value.
But, unfortunately when I try this, @FieldValue always comes back NULL.
Did I miss something the day they taught sp_executesql? Obviously! But what?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看这个例子
See this example
sp_executesql
返回(生成)结果集。@FieldValue
在上面的代码中毫无意义 -sp_executesql
不会将任何值放入该变量中。sp_executesql
returns (generates) a resultset.@FieldValue
is meaningless in the code above -sp_executesql
won't put any value into that variable.