2009-03-23

[MSSQL] Delete Semua Relation key pada MSSQL 2000

Script yang cukup berbahaya.. menghapus semua relation dalam database di MSSQL 2000, belum ditest di MSSQL 2005 keatas



/*
DELETE FOREIGN KEY ( RELATION TABLE )
*/


declare @table
table
(
IDX int identity( 1,1) ,
tbl_name varchar(50) ,
tbl_constraint varchar(200)
)
declare @table2 table ( MSG varchar(500) )
declare @sql varchar(1000) ,
@tbl_Name varchar(50),
@tbl_constraint varchar(200) ,
@rowCount int ,@rowMax int ,
@MSG VARCHAR(200)

set @rowCount = 1

INSERT INTO @table
SELECT
b.[name],
a.[name]
FROM SYSOBJECTS a
INNER JOIN SYSOBJECTS b on a.[parent_obj] = b.[id]
WHERE a.xtype ='F'

select @rowCount
select @rowMax = count(*) from @table
select @rowCount , @rowMax
select * from @table

do while @rowCount <= @rowMax
begin
select @tbl_Name = tbl_Name ,
@tbl_constraint = tbl_constraint
from @table where idx = @rowCount
--INSERT INTO @table2
select @MSG = 'ALTER TABLE dbo.' + @tbl_Name + ' DROP CONSTRAINT [' + @tbl_constraint + ']'
EXEC (@MSG)
set @rowCount = @rowCount + 1
end

SELECT * FROM @table2
select b.[name],
b.[id] ,
a.[name] ,
a.[id]
from SYSOBJECTS a
inner join SYSOBJECTS b on a.[parent_obj] = b.[id]
WHERE a.xtype ='F'

Tidak ada komentar: