如何判断数据库中存在表:jb,存在则删除它,不存在则创建它

解决方案 »

  1.   

    首先用procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);
    得到表列表,再用List.IndexOf查找就行了
    TADOConnection 与TDatabase都有这个方法  ADOConnection1.GetTableNames();
      

  2.   

    判断表内的一个字段是否存在?★★★ 
    procedure TForm1.Button1Click(Sender: TObject);
     var
       StringList: TStringList;
    begin
       ADOConnection1.GetFieldNames('数据表名', StringList);
       if StringList.IndexOf('字段名')>0 then
          Showmessage('存在!')
        else
          Showmessage('不存在!')
    end;
    判断表是否存在应该是把GetFieldNames换成其他的方法,楼主自己找找吧
      

  3.   

    select count(*) as cc from dbname.dbo.sysobjects where xtype in ('U','S') and name='jb'
      

  4.   

    我用的是access数据库,判断表是否存在解决了,这样用sql删除表呢,呵呵,我刚学,大家耐心点教教 我,多谢了
      

  5.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[jb]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[jb]
    GOCREATE TABLE [dbo].[jb] (
    [jb_id] [smallint] IDENTITY (1, 1) NOT NULL ,
             ..............................................
    )
    GO
      

  6.   

    adoconnection1.GetTableNames(listbox1.Items,true);
      

  7.   

    我用的是ADOQuery,是这么写吗:ADOQuery1.sql.add('drop jb');
    ADOQuery1.open;
    语法错误啊
      

  8.   

    ADOQuery1.sql.add('drop jb');
    更本没把表jb删除啊
      

  9.   

    如果是oracle数据库,那么
    select * from user_tables where table_name=?
    具体你看看
      

  10.   

    我要的是删除表jb啊,ADOQuery1.sql.add('Drop jb');删除不了jb,要怎么写呢