データベースのデータを削除します.

1646 ワード

1.データベースのレコードを削除します(ストレージ中のコード):
ALTER PROCEDURE USP_ClearAllCurrentDB

AS

    begin

    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'    

    EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'    

    EXEC sp_MSForEachTable 'DELETE FROM ?'   

    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'    

    EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'

 end


2、データベース内のすべてのテーブルを削除します(ストレージ中):
SET NOCOUNT ON   

    --      .   

    declare cur  cursor for     

    select 'alter table ['+ object_name(parent_obj) + ' ] drop constraint [' + name + '] ' from sysobjects where xtype = 'F'     

    open cur     

    declare @cur nvarchar(4000)     

    fetch next from cur into @cur     

    while @@fetch_status = 0       

        begin       

        exec(@cur)        

        fetch next from cur into @cur        

        end        

    close cur        

    deallocate cur        

    --   .     

    declare @T_Name nvarchar(4000)    

    set @T_Name = ''    

    select @T_Name = @T_Name +name +','  from sysobjects where xtype = 'U'     

    select @T_Name = 'drop table '+ left(@T_Name,len(@T_Name) - 1)    --  @T_Name  ','  .    

    exec(@T_Name)


 
 
ref: http://stackoverflow.com/questions/3372213/how-to-delete-or-truncate-table-in-sql-server