CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请问select语句中能不能用变量名(关于存储过程的)?

楼主xk8156(ShareKey)2005-04-29 18:28:00 在 MS-SQL Server / 基础类 提问

我的存储过程是这样的:  
  1.是根据姓名找记录,这样是行得通的  
  CREATE   PROCEDURE   find  
  @name   char   (20)                                      
  AS  
  select   *   from   table   where   user_name=@name  
  go  
   
  2.是根据表名查找所以记录,这样就不行  
  CREATE   PROCEDURE   findtable  
  @table_name   char   (30)                                      
  AS  
  select   *   from   @table_name   /*这里老是出错,说@table_name变量没有声明,真是搞不懂*/  
  go  
   
  请教哪位高手知道我的问题:  
        指定一个我要查的表,通过存储过程的参数来搞定,但是好象只有   from   后面不等跟变量啊,这是为什么啊?  
        在这里先谢过~~ 问题点数:100、回复次数:7Top

1 楼meiqingsong(阿飛)回复于 2005-04-29 18:30:14 得分 40

CREATE   PROCEDURE   findtable  
  @table_name   char   (30)                                      
  AS  
  declare   @sql  
  set   @sql   =   'select   *   from'   +   @table_name   --这样既可  
  exec(@sql)  
  goTop

2 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-29 18:30:48 得分 40

 
  CREATE   PROCEDURE   findtable  
  @table_name   char   (30)                                      
  AS  
  EXEC('select   *   from   '+@table_name)   --用动态语句  
  go  
  Top

3 楼xk8156(ShareKey)回复于 2005-04-29 18:32:34 得分 0

多谢了,现在的朋友们真是靠得住Top

4 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-04-29 18:37:36 得分 20

exec         sp_executesql         @sqlTop

5 楼xk8156(ShareKey)回复于 2005-04-29 18:44:15 得分 0

meiqingsong(阿飛):  
  你发的这个有错误啊,说set附近有错,但是我也觉得这样的语法不会有错啊,不知道是怎么搞的  
   
  paoluo(一天到晚游泳的鱼):  
  这个朋友发的就不会有错,是不是存储过程中不能用set语句哦?Top

6 楼xk8156(ShareKey)回复于 2005-04-29 18:54:24 得分 0

哦,我知道了,是你的declare   @sql后面没有定义类型,我晕,你真是小马虎  
  应该是declare     @sql     char   (100)  
  不过还是真的很感谢你,还有大家!!Top

7 楼meiqingsong(阿飛)回复于 2005-04-29 18:59:55 得分 0

哈哈,不好意思,没仔细检查Top

相关问题

  • 如何得到存储过程中 select语句的结果(表名为变量)
  • 如何在存储过程中根据INPUT变量,动态的生成SELECT语句(解决就给分)
  • 100分,^_^ 存储过程中的sql语句的变量传送
  • 存储过程中sql语句如何引用变量?
  • 存储过程中怎么处理sql语句中的变量
  • 存储过程中字段名为输入变量,那么存储过程update 语句该怎么做?
  • 在存储过程的查询语句中select * from 后面的表名是否可以用变量?如:@table1,执行之前给变量@table1赋值。
  • 存储过程中,表名是变量,如何执行一个select语句,并把查询的统计值赋给一变量?
  • 存储过程中,在查询语句中添加变量的问题
  • @a 变量是一句sql语句,怎么用到存储过程中?

关键词

  • 存储过程
  • 语句
  • sql
  • 变量
  • procedure findtable
  • 知道
  • 有错
  • table
  • create
  • char

得分解答快速导航

  • 帖主:xk8156
  • meiqingsong
  • paoluo
  • liuxiaoyi666

相关链接

  • SQL Server类图书

广告也精彩

反馈

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