CLOSED
Would you like to react to this message? Create an account in a few clicks or log in to continue.
CLOSED

CLOSED
 
IndeksIndeks  PencarianPencarian  Latest imagesLatest images  PendaftaranPendaftaran  Login  
CLOSED
CLOSED

 

 Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER)

Go down 
PengirimMessage
bagasonwheels
Langitan SI
bagasonwheels


Jumlah posting : 781
Age : 37
Lokasi : GSV (Gowok Silicon Valley)
Registration date : 19.02.08

Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) Empty
PostSubyek: Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER)   Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) EmptyWed Aug 25, 2010 1:43 pm

Titip catetan lagi study

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.
Kembali Ke Atas Go down
http://pedalsepedaku.wordpress.com
bagasonwheels
Langitan SI
bagasonwheels


Jumlah posting : 781
Age : 37
Lokasi : GSV (Gowok Silicon Valley)
Registration date : 19.02.08

Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) Empty
PostSubyek: Re: Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER)   Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER) EmptyWed 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'

study
Kembali Ke Atas Go down
http://pedalsepedaku.wordpress.com
 
Menghapus Semua Tabel Dalam Satu Database (MSSQL SERVER)
Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» Aliasing Pada Record (MSSQL SERVER 2008 R2)
» Melihat/Menampilkan Field Pada Suatu Tabel (SQL SERVER)
» Tipe Tabel MySQL

Permissions in this forum:Anda tidak dapat menjawab topik
CLOSED :: Programing :: Database, Data Warehouse & Data Mining-
Navigasi: