if not exists(select * from ...)
drop table ...

解决方案 »

  1.   

    --查询分析器中执行下面的语句exec sp_msforeachtable 'if not exists(select * from ?) drop table ?'
      

  2.   

    exec sp_msforeachtable "if not exists(select * from ?) drop table ?"
      

  3.   

    慢了,不过如果你的表有外键约束的话,即使是空表也不能drop table它,你先要删除掉所有空表的外键才可以
      

  4.   

    --删除所有的外键
    --FOREIGN KEY 约束
    DECLARE @STRING VARCHAR(8000)
    WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='F')
    BEGIN
     SELECT top 1 @STRING='ALTER TABLE '+B.NAME+' DROP CONSTRAINT '+A.NAME
      FROM (SELECT PARENT_OBJ,NAME FROM SYSOBJECTS WHERE TYPE='F') A,
            (SELECT ID,NAME FROM SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) B
        WHERE A.PARENT_OBJ=B.ID
     EXEC(@STRING)
    ENDGO
      

  5.   

    exec sp_msforeachtable "if not exists(select * from ?) drop table ?"
    又学会了!
      

  6.   

    --删除所有外键楼主要考虑清楚,不能随意操作,下面的是一个一个的删除外键
    ALTER TABLE YOURTABLE DROP CONSTRAINT YOURFOREIGNKEY