删除数据库中的数据.

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

posted @ 2013-07-26 23:07  wonkju  阅读(202)  评论(0编辑  收藏  举报