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