欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

[转]删除MSSQL所有的约束及表格

发布时间:2025/7/25 数据库 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [转]删除MSSQL所有的约束及表格 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
--删除所有约束、表、视图等SQL脚本--############################################### --删除所有外键约束 --############################################### DECLARE @SQL VARCHAR(99) DECLARE CUR_CONSTRAINT CURSOR LOCAL FORSELECT'ALTER TABLE '+CASE WHEN O.schema_id IS NOT NULL THEN (SELECT NAME+'.' FROM sys.schemas WHERE schema_id = O.schema_id) ELSE '' END+OBJECT_NAME(parent_object_id)+' DROP CONSTRAINT '+OBJECT_NAME(object_id)FROM sys.objects AS O JOIN sys.schemas AS S on O.schema_id=S.schema_idWHERE O.type IN('C','D','F') OPEN CUR_CONSTRAINT FETCH CUR_CONSTRAINT INTO @SQL WHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_CONSTRAINT INTO @SQLEND CLOSE CUR_CONSTRAINT DEALLOCATE CUR_CONSTRAINT--############################################### --删除所有视图(存储过程、函数等用同样的方法) --############################################### --DECLARE @SQL VARCHAR(99) DECLARE CUR_VIEW CURSOR LOCAL FORSELECT'IF OBJECT_ID('''+CASE WHEN O.schema_id IS NOT NULL THEN (SELECT NAME+'.' FROM sys.schemas WHERE schema_id = O.schema_id) ELSE '' END+OBJECT_NAME(object_id)+''') IS NOT NULL'++' DROP VIEW '+CASE WHEN O.schema_id IS NOT NULL THEN (SELECT NAME+'.' FROM sys.schemas WHERE schema_id = O.schema_id) ELSE '' END+OBJECT_NAME(object_id)FROM sys.objects AS O JOIN sys.schemas AS S on O.schema_id=S.schema_idWHERE O.type IN('V') OPEN CUR_VIEW FETCH CUR_VIEW INTO @SQL WHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_VIEW INTO @SQLEND CLOSE CUR_VIEW DEALLOCATE CUR_VIEW--############################################### -- 删除所有表 --############################################### --DECLARE @SQL VARCHAR(99) DECLARE CUR_TABLE CURSOR LOCAL FOR SELECT'DROP TABLE '+CASE WHEN O.schema_id IS NOT NULL THEN (SELECT NAME+'.' FROM sys.schemas WHERE schema_id = O.schema_id) ELSE '' END+O.name FROM sys.objects AS O JOIN sys.schemas AS S on O.schema_id=S.schema_id WHERE O.type='U' OPEN CUR_TABLE FETCH CUR_TABLE INTO @SQL WHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_TABLE INTO @SQLEND CLOSE CUR_TABLE DEALLOCATE CUR_TABLE--###############################################再提供一下SQL Server里的OBJECT_ID函数object_type参数类型--###############################################OBJECT_ID(object_name,object_type) 对象类型: AF =聚合函数(CLR) C = CHECK约束 D = DEFAULT(约束或独立) F = FOREIGN KEY约束 FN = SQL标量函数 FS =大会(CLR)的标量函数 FT =程序集(CLR)表值函数 IF = SQL内联表值函数 IT =内部表 P = SQL存储过程 电脑大会(CLR)存储过程 PG =计划指南 PK = PRIMARY KEY约束 R =规则(旧式,单机) RF =复制过滤过程 S =系统基表 SN =同义词 SQ =服务队列 TA =组件(CLR)DML触发器 TF = SQL表值函数 TR = SQL DML触发器 TT =表类型 U =表(用户定义) UQ = UNIQUE约束 V =视图 X =扩展存储过程

 

 

转自:http://www.cnblogs.com/PongorXi/archive/2012/06/20/2556119.html

转载于:https://www.cnblogs.com/netWild/p/4689405.html

总结

以上是生活随笔为你收集整理的[转]删除MSSQL所有的约束及表格的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。