删除数据库的所有存储过程、主键、外键、索引等
2013-03-15 17:36
537 查看
清空表 truncate table [表名] ?为所有表
--删除存储过程
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='P' AND STATUS>=0)
BEGIN
SELECT @STRING='DROP PROCEDURE '+NAME FROM SYSOBJECTS WHERE TYPE = 'P' AND STATUS>=0
--SELECT @STRING
EXEC(@STRING)
END
GO
--默认值或 DEFAULT 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='D')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='D') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--UNIQUE 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='UQ')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='UQ') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--FOREIGN KEY 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='F')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE TYPE='F') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--PRIMARY KEY 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='PK')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='PK') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--触发器
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='TR')
BEGIN
SELECT @STRING='DROP TRIGGER '+NAME FROM SYSOBJECTS WHERE XTYPE='TR'
EXEC(@STRING)
END
GO
--索引
declare @string varchar(8000)
while exists(
select TABLE_NAME= o.name,INDEX_NAME= x.name
from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
where o.type in ('U')
and convert(bit,(x.status & 0x800)/0x800)=0
and x.id = o.id
and o.id = c.id
and o.id = xk.id
and x.indid = xk.indid
and c.colid = xk.colid
and xk.keyno <= x.keycnt
and permissions(o.id, c.name) <> 0
and (x.status&32) = 0 -- No hypothetical indexes
group by o.name,x.name)
begin
select top 1 @string='drop index '+o.name+'.'+ x.name
from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
where o.type in ('U')
and convert(bit,(x.status & 0x800)/0x800)=0
and x.id = o.id
and o.id = c.id
and o.id = xk.id
and x.indid = xk.indid
and c.colid = xk.colid
and xk.keyno <= x.keycnt
and permissions(o.id, c.name) <> 0
and (x.status&32) = 0 -- No hypothetical indexes
group by o.name,x.name
exec(@string)
end
GO
转自:杜鹃/article/5485189.html
--删除存储过程
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='P' AND STATUS>=0)
BEGIN
SELECT @STRING='DROP PROCEDURE '+NAME FROM SYSOBJECTS WHERE TYPE = 'P' AND STATUS>=0
--SELECT @STRING
EXEC(@STRING)
END
GO
--默认值或 DEFAULT 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='D')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='D') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--UNIQUE 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='UQ')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='UQ') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--FOREIGN KEY 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='F')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE TYPE='F') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--PRIMARY KEY 约束
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='PK')
BEGIN
SELECT @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE XTYPE='PK') A,
(SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
WHERE A.PARENT_OBJ=B.ID
EXEC(@STRING)
END
GO
--触发器
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='TR')
BEGIN
SELECT @STRING='DROP TRIGGER '+NAME FROM SYSOBJECTS WHERE XTYPE='TR'
EXEC(@STRING)
END
GO
--索引
declare @string varchar(8000)
while exists(
select TABLE_NAME= o.name,INDEX_NAME= x.name
from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
where o.type in ('U')
and convert(bit,(x.status & 0x800)/0x800)=0
and x.id = o.id
and o.id = c.id
and o.id = xk.id
and x.indid = xk.indid
and c.colid = xk.colid
and xk.keyno <= x.keycnt
and permissions(o.id, c.name) <> 0
and (x.status&32) = 0 -- No hypothetical indexes
group by o.name,x.name)
begin
select top 1 @string='drop index '+o.name+'.'+ x.name
from sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk
where o.type in ('U')
and convert(bit,(x.status & 0x800)/0x800)=0
and x.id = o.id
and o.id = c.id
and o.id = xk.id
and x.indid = xk.indid
and c.colid = xk.colid
and xk.keyno <= x.keycnt
and permissions(o.id, c.name) <> 0
and (x.status&32) = 0 -- No hypothetical indexes
group by o.name,x.name
exec(@string)
end
GO
转自:杜鹃/article/5485189.html
相关文章推荐
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等(转)
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除数据库的所有存储过程、主键、外键、索引等
- 删除的所有存储过程、主键、外键、索引等
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除
- sqlserver 基础(增、删、改、查、链表查询、建立聚焦索引、主键、创建约束、创建外键)、触发器、存储过程
- 数据库是否使用外键,及视图,索引,存储过程的一些说明(zz)
- 删除当前数据库下面的所有用户表存储过程
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 数据库是否使用外键,及视图,索引,存储过程的一些说明(zz)
- 删除数据库所有存储过程的SQL语句
- SQL存储过程之删除指定表中所有索引