日期:2014-05-18  浏览次数:20532 次

一个数据库查询问题,谢谢了!
各位大虾帮办忙!谢谢了!
use   DataBaseName
go
declare   @Table   nvarchar(50),
                @Name   nvarchar(50)
set   @Tabel= 'Table_1 '
select   @Name=Name   from   @Table
注:原程序@Table的值是从另一个表中查出来的字符串,是别的数据表的名字,这里直接用字符串代替了!
        我需要得到@Name的查询结果,用于其它工作,不能使用   exec   sp_executesql,如果使用exec   sp_exectesql不能使@Name得到值。
        我的问题就是:既要使用变量@Name得到查询的值,还要使用字符串作为表明,不管用什么办法,各位仁兄帮帮忙,小弟谢谢了!


------解决方案--------------------
--晕,怎么会,试试下面的
use DataBaseName
go
declare @Table nvarchar(50),
@Name nvarchar(50)
@sqlstr nvarchar(4000)
set @Tabel= 'Table_1 '
set @sqlstr= 'select @Name1=Name from @Table1 '
exec sp_executesql @sqlstr,N '@Name1 nvarchar(20) output,@Table1 nvarchar(50) ',
@Name1=@Name output,@Table1 =@Table