关于删除表的问题
我想通过如下方式删除数据库中的表:
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




