CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

关于删除表的问题

楼主youhaodeyi(友好的翼)2006-03-01 19:25:41 在 MS-SQL Server / 基础类 提问

我想通过如下方式删除数据库中的表:  
   
  declare   @tableName   char(10)  
  set   @tableName="Table1"  
  delete   from   @tableName  
   
  为什么系统提示"必须声明变量   '@name'",这是为什么?难道不能通过变量的方式删除表吗?  
  再有,用什么命令可以查看当前数据库中有什么表,有什么命令可以查看某个表的结构  
  谢谢 问题点数:20、回复次数:11Top

1 楼lsqkeke(可可)回复于 2006-03-01 19:30:08 得分 5

 
  declare   @tableName   char(10)  
  set   @tableName="Table1"  
  exec('delete   from   '+@tableName)Top

2 楼lsqkeke(可可)回复于 2006-03-01 19:32:25 得分 0

用什么命令可以查看当前数据库中有什么表  
   
  -----------------------  
  use   数据库名  
  select   *   from   sysobjects   where   xtype='u'  
   
  有什么命令可以查看某个表的结构  
  ---------------------  
  select   *   from   syscolumns   where   id=object_id('表名')Top

3 楼happyflystone(无枪的狙击手)回复于 2006-03-01 19:36:21 得分 0

exec('delete   from   '+@tableName)  
  Top

4 楼ReViSion(和尚)回复于 2006-03-01 20:37:31 得分 5

--用动态语句    
  declare   @tableName   char(10)  
  set   @tableName="Table1"  
  exec('delete   from   '+@tableName)  
       
  Top

5 楼youhaodeyi(友好的翼)回复于 2006-03-02 09:22:35 得分 0

我想用一个存储过程来删除一个表,表的名称通过参数传递,请问应该怎么设计?  
  如何查看某个数据库中有什么表,怎么样查看某个表的表结构Top

6 楼ping3000(苦练葵花点穴手)回复于 2006-03-02 10:19:55 得分 5

存储过程   这样设计  
  create   proc   deletetable  
  @tablename   nvarchar(100)  
  as  
  declare   @sql   nvarchar(200)  
  set   @sql   =   'delete   from   '   +   @tablename  
  exec(@sql)  
  goTop

7 楼ping3000(苦练葵花点穴手)回复于 2006-03-02 10:22:05 得分 5

上面的是删除表里的数据,如果是彻底删除表  
  create   proc   droptable  
  @tablename   nvarchar(100)  
  as  
  declare   @sql   nvarchar(200)  
  set   @sql   =   'drop   table   '   +   @tablename  
  exec(@sql)  
  goTop

8 楼ping3000(苦练葵花点穴手)回复于 2006-03-02 10:26:08 得分 0

--   查看有哪些表(U用户表,S系统表)  
  select   *   from   sysobjects   where   xtype   ='U'   or   xtype   =   'S'    
   
  --   查看表的结构  
  select   *   from   syscolumns    
  where   id   =   (select   id   from   sysobjects   where   name   =   '表名称'   and   (xtype   ='U'   or   xtype   =   'S'))Top

9 楼youhaodeyi(友好的翼)回复于 2006-03-02 10:34:04 得分 0

1、sysobjects和syscolumns是什么?  
  2、exec是干什么用的?  
  3、我想显示的是表中有哪些字段,各个字段都是什么类型  
  谢谢Top

10 楼zjdyzwx(十一月猪)回复于 2006-03-02 11:05:11 得分 0

sp_help   tablenameTop

11 楼youhaodeyi(友好的翼)回复于 2006-03-08 10:50:29 得分 0

但是我要是这么写  
  declare   @TablesName   varchar(100)  
  declare   @sqlStr   varchar(500)  
  set   @sqlStr='   from   InstanceManagement  
  where   InstanceID='+@iInstanceID  
  exec('select   '+@TablesName+'=FrameInfoTable   '+   @sqlStr)  
   
  其中:InstanceManagement是表名,FrameInfoTable是字段,我给@TablesName变量赋值,为什么总是提示“必须声明变量   '@TablesName'”Top

相关问题

  • 如何删除表?
  • =======删除不了表=======
  • 如何删除表?
  • 表无法删除
  • 关于删除表空间
  • 怎样删除链表。
  • 怎样删除表空间
  • 关于删除表的
  • 表记录删除不掉
  • 删除表的问题

关键词

  • 字段
  • 数据库
  • 结构
  • 表
  • tablesname
  • tablename
  • 删除
  • 变量
  • 查看某个
  • 命令

得分解答快速导航

  • 帖主:youhaodeyi
  • lsqkeke
  • ReViSion
  • ping3000
  • ping3000

相关链接

  • SQL Server类图书

广告也精彩

反馈

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