建临时表,因为几个用户同时使用,请过来人帮忙解决,谢谢!

解决方案 »

  1.   

    (1)如何判断数据库中表是否存在?
    select * from sysobjects 
    where id = object_id('你的表名') and OBJECTPROPERTY(id, 'IsUserTable') = 1如果返回记录集非空,则表存在;
    否则如果返回记录集为空,则表不存在。
    (2)如何在程序中控制动态生成表名?
    程序调用创建表的SQL语句就行了嘛!
      

  2.   

    下面代码中acStore为一ADOConnection链接,判断表sExcel是否存在,存在则删除:
    ...
    var
      tName: TStrings;
    begin
      tName := TStringList.Create;
      acStore.GetTableNames(tName, False);
      if tName.IndexOf('sExcel') >= 0 then
        acStore.Execute('drop table sExcel');
      tName.Free;
    ...
      

  3.   

    如果是判断临时表是否存在:
    select * from tempdb.dbo.sysobjects where name=''##'+kucuntemp+' '' and type=''u''
    kucuntemp 表名变量,全局临时表
      

  4.   

    用 weizi2000(秋风啊)的方法好,因为有不同的数据库
    如SQLSERVER,MYSQL等等
    不同数据库的语法都不相同
      

  5.   

    请二楼的能解释下吗?谢谢
    select * from sysobjects 
    where id = object_id('你的表名') and OBJECTPROPERTY(id, 'IsUserTable') = 1
    那 if 怎么判断呢?
      

  6.   

    if EXISTS(  select * from sysobjects 
    where id = object_id('你的表名') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
    drop table 你的表名建表
    sql:='create table 表名(字段 类型)'
      

  7.   

    weizi2000(秋风啊)的方法好,将表名导入字符串列表中,如果所查找的表名(字符串)在字符串列表中,则起索引值大于等于0
      

  8.   

    ...
    weizi2000(秋风啊)和楼上的,能解释一下吗?
    var
      tName: TStrings;
    begin
      tName := TStringList.Create;
      acStore.GetTableNames(tName, False);
      if tName.IndexOf('sExcel') >= 0 then
        acStore.Execute('drop table sExcel');
      tName.Free;
    ...