删除所有约束、表、视图等SQL脚本

--删除所有约束、表、视图等SQL脚本--###############################################--删除所有外键约束--###############################################DECLARE @SQL VARCHAR(99)DECLARE CUR_CONSTRAINT CURSOR LOCAL FORSELECTALTER 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_CONSTRAINTFETCH CUR_CONSTRAINT INTO @SQLWHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_CONSTRAINT INTO @SQLENDCLOSE CUR_CONSTRAINTDEALLOCATE CUR_CONSTRAINT--###############################################--删除所有视图(存储过程、函数等用同样的方法)--###############################################DECLARE @SQL VARCHAR(99)DECLARE CUR_VIEW CURSOR LOCAL FORSELECTIF 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_VIEWFETCH CUR_VIEW INTO @SQLWHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_VIEW INTO @SQLENDCLOSE CUR_VIEWDEALLOCATE CUR_VIEW--###############################################-- 删除所有表--###############################################DECLARE @SQL VARCHAR(99)DECLARE CUR_TABLE CURSOR LOCAL FORSELECTDROP TABLE +CASE WHEN O.schema_id IS NOT NULL THEN (SELECT NAME+. FROM sys.schemas WHERE schema_id = O.schema_id) ELSE ‘‘ END+O.nameFROM sys.objects AS O JOIN sys.schemas AS S on O.schema_id=S.schema_idWHERE O.type=UOPEN CUR_TABLEFETCH CUR_TABLE INTO @SQLWHILE @@FETCH_STATUS =0BEGINEXEC(@SQL)FETCH CUR_TABLE INTO @SQLENDCLOSE CUR_TABLEDEALLOCATE 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 =扩展存储过程

 

相关文章