专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Sql Server

必须声明标量变量的有关问题

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
必须声明标量变量的问题
在存储过程中,部分代码如下

--根据系统ID取得要查询的表名和字段名
select @TableName=TableName,@ColumnName=ColumnName from #SysTableName where SystemId=@SystemId
declare @tName nvarchar(1000)
--拼接执行语句
exec(N'select @tName=NodeName from '+@TableName+ ' where '+@ColumnName+'='+@tHierarchyId)


报的错为 必须声明标量变量 "@tName"。 
但是我在拼接前声明了的

------解决方案--------------------

exec(N'select '+@tName+ '=NodeName from '+@TableName+ ' where '+@ColumnName+'='+@tHierarchyId) 


这样试试
------解决方案--------------------

--根据系统ID取得要查询的表名和字段名
select @TableName=TableName,@ColumnName=ColumnName from #SysTableName where SystemId=@SystemId
declare @tName nvarchar(1000),@sql nvarchar(max)
--拼接执行语句
Set @sql=N'select @Name=NodeName from '+@TableName+ ' where '+@ColumnName+'='+@tHierarchyId


Exec sp_executesql @sql,N'@tName nvarchar(1000) Output',@Name=@tName Output
------解决方案--------------------
--修改下:

--根据系统ID取得要查询的表名和字段名
select @TableName=TableName,@ColumnName=ColumnName from #SysTableName where SystemId=@SystemId
declare @tName nvarchar(1000),@sql nvarchar(max)
--拼接执行语句
Set @sql=N'select @Name=NodeName from '+@TableName+ ' where '+@ColumnName+'='+@tHierarchyId


Exec sp_executesql @sql,N'@Name nvarchar(1000) Output',@Name=@tName Output
------解决方案--------------------
引用:
--修改下:

--根据系统ID取得要查询的表名和字段名
select @TableName=TableName,@ColumnName=ColumnName from #SysTableName where SystemId=@SystemId
declare @tName nvarchar(1000),@sql nvarchar(max)
--拼接执行语句
……

+1
呵呵,请教一下,sp_executesql N'select * from @tb'是不是就不能将表名作为变量啊?只能拼接
------解决方案--------------------
--根据系统ID取得要查询的表名和字段名
select @TableName=TableName,@ColumnName=ColumnName from #SysTableName where SystemId=@SystemId
declare @tName nvarchar(1000),@Sql NVARCHAR(4000)
SET @Sql=N'select @tName=NodeName from '+@TableName+'where '+@ColumnName+'=@tHierarchyId'
--拼接执行语句
exec sp_executesql @Sql,N'@tName nvarchar(1000) output,@tHierarchyId nvarchar(1000)',@tName OUTPUT,@tHierarchyId

SELECT @tName
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: