如题。删除数据库A中所有表:a.user,a.city,a.car...

解决方案 »

  1.   

    declare @tname varchar(8000)set @tname=''select @tname=@tname + Name + ',' from sysobjects where xtype='U'select @tname='drop table ' + left(@tname,len(@tname)-1)exec(@tname)
      

  2.   

    drop database A
    create database A
      

  3.   

    use A
    exec sp_msforeachtable ' drop table ?'
      

  4.   

    --删除外键约束
    DECLARE c1 cursor for 
        select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
        from sysobjects 
        where xtype = 'F'
    open c1
    declare @c1 varchar(8000)
    fetch next from c1 into @c1
    while(@@fetch_status=0)
        begin 
            exec(@c1)
            fetch next from c1 into @c1
        end
    close c1
    deallocate c1 
    --删除表
    DECLARE c2 cursor for 
        select 'drop table ['+name +']; '
        from sysobjects 
        where xtype = 'u' 
    open c2
    declare @c2 varchar(8000)
    fetch next from c2 into @c2
    while(@@fetch_status=0)
        begin
            exec(@c2)
            fetch next from c2 into @c2
        end
    close c2
    deallocate c2exec sp_msforeachtable @command1="truncate table ? ;",
                           @whereand='and schema_id = (select schema_id from sys.schemas where [name] not in(''khda'',''khzh'',''khzmx''))'
      

  5.   

    exec sp_msforeachtable @command1="truncate table ? ;",
                           @whereand='and schema_id = (select schema_id from sys.schemas))'
      

  6.   

    exec sp_msforeachtable @command1="drop table ?"
      

  7.   

    EXEC sp_MSforeachtable "drop table ?" 
      

  8.   

    对于更高的版本,比如SQL2008,建议你先筛选出需要drop的表,否则 你可以drop DB。USE DB_name
    go
    select 'drop table '+name from sys.objects where type='u'
      

  9.   

    1.declare @tname varchar(8000)set @tname=''
    select @tname=@tname + Name + ',' from sysobjects 
    where xtype='U'
    select @tname='drop table ' + left(@tname,len(@tname)-1)
    exec(@tname)2. drop database A
    create database A
     
    3.use Test
    exec sp_msforeachtable ' drop table ?'4.exec sp_msforeachtable @command1='drop table ?'
      

  10.   

    select 'drop table ' +stuff((select ','+name from sys.objects where type='u' for XML  path('')),1,1,'' )
      

  11.   

    本帖最后由 roy_88 于 2011-10-07 17:56:34 编辑
      

  12.   

    declare @sql  varchar(5000)
    set @sql = ''
    select @sql = @sql +'delete from  '+[name]+';'  from sysobjects where xtype='u'
    print  @sql
    exec(@sql