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

时间:2024-01-25 21:06:40 

方便删除数据库中所有的数据表,清空数据库,有些有约束,不能直接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 Procedure

sysobjects的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 保留。

标签:删除表,约束,清空数据库
0
投稿

猜你喜欢

  • python list删除元素时要注意的坑点分享

    2021-07-15 16:02:22
  • 理解生产者消费者模型及在Python编程中的运用实例

    2021-04-07 01:01:59
  • 计算Python Numpy向量之间的欧氏距离实例

    2022-08-14 08:21:56
  • 使用python模块plotdigitizer抠取论文图片中的数据实例详解

    2023-07-14 01:50:52
  • 详解NodeJS框架express的路径映射(路由)功能及控制

    2024-05-11 10:23:07
  • Python中的上下文管理器和with语句的使用

    2021-01-28 00:29:51
  • python 实现数组list 添加、修改、删除的方法

    2021-10-21 16:27:34
  • 使用python读取txt文件的内容,并删除重复的行数方法

    2022-05-08 19:41:56
  • Scrapy爬虫Response子类在应用中的问题解析

    2023-11-03 01:29:31
  • 使用Python、TensorFlow和Keras来进行垃圾分类的操作方法

    2021-08-31 23:45:13
  • 浅谈一下关于Python对XML的解析

    2023-08-15 21:33:36
  • Python version 2.7 required, which was not found in the registry

    2021-06-02 14:57:13
  • golang协程关闭踩坑实战记录

    2024-02-13 00:02:57
  • 解析python的局部变量和全局变量

    2023-08-23 18:17:01
  • JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)

    2024-05-08 10:10:47
  • OpenCV图像处理之七种常用图像几何变换

    2022-01-27 03:11:51
  • Python画图小案例之小雪人超详细源码注释

    2021-09-21 11:49:44
  • django和vue互传图片并进行处理和展示

    2021-04-24 20:39:16
  • python实现有效的括号判断实例代码

    2023-11-24 14:40:34
  • Vue的v-if和v-show的区别图文介绍

    2024-04-30 10:41:40
  • asp之家 网络编程 m.aspxhome.com