动态查询表问题
我想使查询语句 from 关键字 后面的表名为一变量,实现动态查询各个表,下面是个简单的例子,有错误。想实现这个功能应该怎么写语法?
declare @tname char(10);
set @tname='ckmx ';
select * from @tname;
问题点数:20、回复次数:6Top
1 楼LouisXIV(夜游神)回复于 2006-07-01 12:20:50 得分 10
declare @tname char(10);
set @tname='ckmx ';
exec ('select * from '+@tname)Top
2 楼panjinfu80(天蓝水晶)回复于 2006-07-01 15:04:39 得分 0
declare @tname char(10);
set @tname='ckmx ';
exec ('select * from '''+@tname+'''');Top
3 楼hellowork(一两清风)回复于 2006-07-01 16:18:55 得分 0
楼上朋友的写法有误,EXEC里面的字符串展开就是:
select * from 'ckmx'
这与select * from @tname的效果是一样的.
一楼写的对.Top
4 楼Dic4000()回复于 2006-07-03 11:05:03 得分 0
想得到记录的行数,把它给变量@count,不知道下面的语法怎么改才正确?
declare @tname char(10),@count int;
set @tname='ckmx'
exec('select '+ @count='count(*) from '+ @tname);
select table_count=@count
goTop
5 楼LouisXIV(夜游神)回复于 2006-07-03 11:16:45 得分 10
declare @tname varchar(10),@count int,@sql nvarchar(4000)
select @tname='ckmx'
select @sql=('select @count=count(*) from '+@tname)
exec sp_executesql @sql,N'@count int out',@count out
select @countTop
6 楼lengxiaowei(小伟)回复于 2006-07-03 11:24:15 得分 0
declare @tname char(10);
set @tname='ckmx ';
exec ('select * from '+@tname)Top




