怎样判断表是否存在??最好用sql!
如 删除表
drop table tmp
建表
create table tmp('+zd1+')那么判断表是否存在呢

解决方案 »

  1.   

    你是什么数据库?
    在sybase 上是在sysobjects中查找
    select 目标名 from 数据库..sysobjects where name='目标名'
      

  2.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[A_ClientSet]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[A_ClientSet]CREATE TABLE [dbo].[A_ClientSet] (
    [ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION  NOT NULL ,
    [ClientSet] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [FirstData] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [LastData] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [month] [int] NULL 
    ) ON [PRIMARY]
      

  3.   

    这个问题呀,你把SQL Server任何一个Table用SQL语句导出的话,打开第一句话就是判断表是否存在的标准语句。看一下啦!
      

  4.   

    呵呵,你用SQL2000生成一个脚本,看看开头是怎么写的?
      

  5.   

    sql server 也可以呀
    在sybase 上是在sysobjects中查找
    select 目标名 from 数据库..sysobjects where name='目标名' 
    sysobjects
    在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。列名 数据类型 描述 
    name sysname 对象名。 
    Id int 对象标识号。 
    xtype char(2) 对象类型。可以是下列对象类型中的一种: 
    C = CHECK 约束
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束
    L = 日志
    FN = 标量函数
    IF = 内嵌表函数
    P = 存储过程
    PK = PRIMARY KEY 约束(类型是 K)
    RF = 复制筛选存储过程
    S = 系统表
    TF = 表函数
    TR = 触发器
    U = 用户表
    UQ = UNIQUE 约束(类型是 K)
    V = 视图
    X = 扩展存储过程
     
    uid smallint 所有者对象的用户 ID。 
    info smallint 保留。仅限内部使用。 
    status int 保留。仅限内部使用。 
    base_schema_
    ver int 保留。仅限内部使用。 
    replinfo int 保留。供复制使用。 
    parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 
    crdate datetime 对象的创建日期。 
    ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。  
    schema_ver int 版本号,该版本号在每次表的架构更改时都增加。 
    stats_schema_
    ver int 保留。仅限内部使用。 
    type char(2) 对象类型。可以是下列值之一: 
    C = CHECK 约束 
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束 
    FN = 标量函数
    IF = 内嵌表函数
    K = PRIMARY KEY 或 UNIQUE 约束 
    L = 日志
    P = 存储过程
    R = 规则
    RF = 复制筛选存储过程
    S = 系统表 
    TF = 表函数
    TR = 触发器
    U = 用户表
    V = 视图
    X = 扩展存储过程
      

  6.   

    查询生成器有模板:
    -- =============================================
    -- Create table basic template
    -- =============================================
    IF EXISTS(SELECT name 
      FROM   sysobjects 
      WHERE  name = N'<table_name, sysname, test_table>' 
      AND   type = 'U')
        DROP TABLE <table_name, sysname, test_table>
    GOCREATE TABLE <table_name, sysname, test_table> (
    <column_1, sysname, c1> <datatype_for_column_1, , int> NULL, 
    <column_2, sysname, c2> <datatype_for_column_2, , int> NOT NULL)
    GO
      

  7.   

    if exit (select * from sysobjects where name='tablename' and type='t')
      drop table tablename
      

  8.   

    察看系统表
    oracle
    select count(*) from tabs where table_name='your tablename';
    count>0----有
    else没有
      

  9.   

    if (select object_id('tablename')) is not null
    begin
    print '存在'
    end
    else
    begin
    print '不存在'
    end
      

  10.   

    ...
    SQL.Add('select name from sysobjects where name = tmp and type=u');
    open;
    ...
    if ADOQuery.IsEmpty then
      ShowMessage('表tmp不存在!');