bagasonwheels Langitan SI
Jumlah posting : 781 Age : 37 Lokasi : GSV (Gowok Silicon Valley) Registration date : 19.02.08
| Subyek: Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) Wed Aug 25, 2010 1:43 pm | |
| Titip catetan lagi - Code:
-
USE bank_db exec sp_MSforeachtable "DROP TABLE ? PRINT '? dropped' " bank_db=ganti dengan nama database yang dituju Sangat berguna jika dalam satu database terdapat ratusan table dan tidak ada tool yang membantu mempermudah penghapusan tabel. Perintah ini sebenarnya mengeksekusi Stored Procedure bawaan MS SQL SERVER. | |
|
bagasonwheels Langitan SI
Jumlah posting : 781 Age : 37 Lokasi : GSV (Gowok Silicon Valley) Registration date : 19.02.08
| Subyek: Re: Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) Wed Dec 01, 2010 3:11 pm | |
| Alternatif lain tapi agak rumit tapi ada tulisan konfirmasinya. script ini bisa untuk hapus semua tabel tapi aku modif jadi menghapus semua tabel dalam satu schema - Code:
-
USE [bank_db] GO /****** Object: StoredProcedure [dbo].[DeleteAllDBO] Script Date: 12/01/2010 15:07:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[DeleteAllDBO] AS BEGIN DECLARE @SQL nvarchar(2000), @TableName sysname, @SchemaName sysname DECLARE DaftarTable SCROLL CURSOR FOR SELECT QUOTENAME(TABLE_SCHEMA) AS schemaname, QUOTENAME(TABLE_NAME) AS name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='DBO' OPEN DaftarTable FETCH NEXT FROM DaftarTable INTO @SchemaName, @TableName WHILE @@FETCH_STATUS = 0 BEGIN --Disable Semua Trigger SET @SQL = (SELECT 'ALTER TABLE '+ @SchemaName + '.' + @TableName + ' DISABLE TRIGGER ALL') EXECUTE sp_ExecuteSQL @SQL; IF @@ERROR = 0 BEGIN PRINT 'disabled Triggers ' + @SchemaName + '.' + @TableName +' Sukses !' END ELSE BEGIN PRINT 'Disabled Triggers ' + @SchemaName + '.' + @TableName +' Gagal :(' END
--Disable semua Constraint SET @SQL = (SELECT 'ALTER TABLE '+ @SchemaName + '.' + @TableName + ' NOCHECK CONSTRAINT ALL') EXECUTE sp_ExecuteSQL @SQL; IF @@ERROR = 0 BEGIN PRINT ' disabled Constraints ' + @SchemaName + '.' + @TableName +' Sukses !' END ELSE BEGIN PRINT ' disabled Constraints ' + @SchemaName + '.' + @TableName +' Gagal :(' END FETCH NEXT FROM DaftarTable INTO @SchemaName, @TableName END FETCH FIRST FROM DaftarTable INTO @SchemaName, @TableName WHILE @@FETCH_STATUS = 0 BEGIN BEGIN SET @SQL = (SELECT 'BEGIN TRY TRUNCATE TABLE ' + @SchemaName + '.' + @TableName + ' PRINT ''Berhasil melakukan pekerjaan Truncated pada ' + @SchemaName + '.' + @TableName + ''' END TRY BEGIN CATCH DELETE FROM ' + @SchemaName + '.' + @TableName + ' IF EXISTS(SELECT ''A'' FROM information_schema.columns WHERE COLUMNPROPERTY(OBJECT_ID(''' + @SchemaName + '.' + @TableName + '''), column_name,''IsIdentity'')=1 AND QUOTENAME(TABLE_SCHEMA) = ''' + @SchemaName + ''' AND QUOTENAME(TABLE_NAME) = ''' + @TableName + ''') BEGIN DBCC CHECKIDENT(''' + @SchemaName + '.' + @TableName + ''', RESEED, 0) END PRINT ''Berhasil melakukan Penghapusan data pada ' + @SchemaName + '.' + @TableName + ''' END CATCH') END EXECUTE sp_ExecuteSQL @SQL; FETCH NEXT FROM DaftarTable INTO @SchemaName, @TableName END FETCH FIRST FROM DaftarTable INTO @SchemaName, @TableName WHILE @@FETCH_STATUS = 0 BEGIN --Enable Semua Trigger SET @SQL = (SELECT 'ALTER TABLE '+ @SchemaName + '.' + @TableName + ' ENABLE TRIGGER ALL') EXECUTE sp_ExecuteSQL @SQL; IF @@ERROR = 0 BEGIN PRINT 'Enabled Triggers ' + @SchemaName + '.' + @TableName +' Sukses !' END ELSE BEGIN PRINT 'Enabled Triggers ' + @SchemaName + '.' + @TableName +' Gagal :(' END SET @SQL = (SELECT 'ALTER TABLE ' + @SchemaName + '.' + @TableName + ' CHECK CONSTRAINT ALL') EXECUTE sp_ExecuteSQL @SQL; IF @@ERROR = 0 BEGIN PRINT ' Enabled Constraints ' + @SchemaName + '.' + @TableName +' Sukses !' END ELSE BEGIN PRINT ' Enabled Constraints ' + @SchemaName + '.' + @TableName +' Gagal :(' END FETCH NEXT FROM DaftarTable INTO @SchemaName, @TableName END CLOSE DaftarTable DEALLOCATE DaftarTable END script bagian ini yg membuat semua data di semua tabel dalam schema dbo terhapus - Code:
-
SELECT QUOTENAME(TABLE_SCHEMA) AS schemaname, QUOTENAME(TABLE_NAME) AS name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='DBO' | |
|