SQLserver删除某数据库中所有表实现思路

2022-11-12 09:42:52
内容摘要
这篇文章主要为大家详细介绍了SQLserver删除某数据库中所有表实现思路,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记! 方便删除数据库中
文章正文

这篇文章主要为大家详细介绍了SQLserver删除某数据库中所有表实现思路,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

方便删除数据库中所有的数据表,清空数据库,有些有约束,不能直接delete,需要先删除库中的约束,代码如下

代码如下:

 
--删除所有约束 
DECLARE c1 cursor for 
select'alter table ['+ object_name(parent_obj)+'] drop constraint ['+name+']; ' 
from sysobjects 
where xtype ='F' 
open c1 
declare @c1 varchar(8000) 
fetch nextfrom c1 into@c1 
while(@@fetch_status=0) 
begin 
exec(@c1) 
fetch nextfrom c1 into@c1 
end 
close c1 
deallocate c1 
--删除数据库所有表 
declare @tname varchar(8000) 
set@tname='' 
select@tname=@tname+Name+','from sysobjects where xtype='U' 
select@tname='drop table '+ left(@tname,len(@tname)-1) 
exec(@tname) 
然后清空数据库中的所有表:如果需要删除存储过程等只需要将上面的做如下修改就行了的where xtype='U' 改成 where xtype='P',drop table 改成 drop Proceduresysobjects的xtype代表含义:在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。列名 数据类型 描述name sysname 对象名。Id int 对象标识号。xtype char(2) 对象类型。可以是下列对象类型中的一种:C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束L = 日志FN = 标量函数IF = 内嵌表函数P = 存储过程PK = PRIMARY KEY 约束(类型是 K)RF = 复制筛选存储过程S = 系统表TF = 表函数TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程uid smallint 所有者对象的用户 ID。info smallint 保留。仅限内部使用。status int 保留。仅限内部使用。base_schema_ver int 保留。仅限内部使用。replinfo int 保留。供复制使用。parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。crdate datetime 对象的创建日期。ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。schema_ver int 版本号,该版本号在每次表的架构更改时都增加。stats_schema_ver int 保留。仅限内部使用。type char(2) 对象类型。可以是下列值之一:C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束FN = 标量函数IF = 内嵌表函数K = PRIMARY KEY 或 UNIQUE 约束L = 日志P = 存储过程R = 规则RF = 复制筛选存储过程S = 系统表TF = 表函数TR = 触发器U = 用户表V = 视图X = 扩展存储过程userstat smallint 保留。sysstat smallint 内部状态信息。indexdel smallint 保留。refdate datetime 留作以后使用。version int 留作以后使用。deltrig int 保留。instrig int 保留。updtrig int 保留。seltrig int 保留。category int 用于发布、约束和标识。cache smallint 保留。

注:关于SQLserver删除某数据库中所有表实现思路的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!