--
刪除表
exec
sp_msforeachtable
'
drop 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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

