Sql Server 删除所有表 脚本

如果由于外键约束删除table失败,则先删除所有约束:

--/第1步**********删除所有表的外键约束*************************/

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 next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1

--/第2步**********删除所有表*************************/

use 数据库名(是要删除表的所在的那个数据库的名称)
GO
declare @sql varchar(8000)
while (select count(*) from sysobjects where type=‘U‘)>0
begin
SELECT @sql=‘drop table ‘ + name
FROM sysobjects
WHERE (type = ‘U‘)
ORDER BY ‘drop table ‘ + name
exec(@sql)
end

--删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where type=‘U‘ 改成 where type=‘P‘,drop table 改成 drop Procedure。
时间: 2024-12-08 17:04:54

Sql Server 删除所有表 脚本的相关文章

Sql Server删除数据表中重复记录 三种方法

本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1.生成一张临时表new_users,表结构与users表一样:2.对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表:如果已经有了相同的项,则忽略此条记录:3.把users表改为其它的名称,把new_use

Sql Server 删除所有表

如果由于外键约束删除table失败,则先删除所有约束:   --/第1步**********删除所有表的外键约束*************************/   DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; ' from sysobjects where xtype = 'F' open c1 declare @c1 varcha

(转)SQL SERVER 生成建表脚本

https://www.cnblogs.com/champaign/p/3492510.html /****** Object: StoredProcedure [dbo].[GET_TableScript_MSSQL] Script Date: 06/15/2012 11:59:00 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/*====================================================

sql server 删除所有表、视图、存储过程

本文来自:http://www.cnblogs.com/yjss/articles/2065664.html 1.删除表 use 数据库名 declare mycur cursor local for select [name] from dbo.sysobjects where xtype='U' declare @name varchar(100) OPEN mycur FETCH NEXT from mycur into @name WHILE @@FETCH_STATUS = 0 BEG

SQL Server删除表信息的三种方法

1.使用DELETE实现SQL Server删除表信息 (1)删除表中的全部信息 USE student GO DELETE student      --不加where条件,删除表中的所有记录 go (2)删除表中符合条件的记录 USE student GO DELETE student where Id='001'    --删除表中符合条件的记录 GO 2.使用TRUNCATE删除表中的信息 USE student GO TRUNCATE TABLE    student   --删除表中

SQL Server 索引和表体系结构(三)

原文:SQL Server 索引和表体系结构(三) 包含列索引 概述 包含列索引也是非聚集索引,索引结构跟聚集索引结构是一样,有一点不同的地方就是包含列索引的非键列只存储在叶子节点:包含列索引的列分为键列和非键列,所谓的非键列就是INCLUDE中包含的列,至少需要有一个键列,且键列和非键列不允许重复,非键列最多允许1023列(也就是表的最多列-1),由于索引键列(不包括非键)必须遵守现有索引大小的限制(最大键列数为 16,总索引键大小为 900 字节)的要求所以引进了包含列索引. 正文 创建包含

SQL Server删除重复行的6个方法

SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect   table  tableName  where   id   not   in   (   select   max(id)   from   table   group   by   col1,col2,col3...   )    group   by   子句后跟的字段就是你用来判断重复的条件,如

SQL server 数据库用户表名称

转自(http://blog.163.com/jlj_sk/blog/static/22579293200861422833924/) 取得SQL server 数据库中 所有用户表名称 select name from sysobjects where xtype='U' order by name SQL server数据库系统表详解: sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures主数据库 配置选项 sysc

SQL Server 监控统计阻塞脚本信息

原文:SQL Server 监控统计阻塞脚本信息 数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的影响. 很多时候,DBA需要知道数据库在出现性能问题时,有没有发生阻塞? 什么时候开始的?发生在那个数据库上? 阻塞发生在那些SQL语句之间? 阻塞的