CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

动态查询表问题

楼主Dic4000()2006-07-01 12:16:57 在 MS-SQL Server / 基础类 提问

我想使查询语句   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

相关问题

关键词

得分解答快速导航

  • 帖主:Dic4000
  • LouisXIV
  • LouisXIV

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo