--根据系统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
--根据系统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