是这样的,小弟在程序中的查询统计功能中原来用临时表存储多表查询的结果,后来发现经常出现“插入的对象‘#表名’无效,或者该临时表已经存在”等等错误提示,判断了临时表是否存在还是这样,觉得处理麻烦,就改用固定表,也就是在库中事先建立真正的表,当打开查询表单的时候在OnCreate事件中用“insert into table select ...”插入记录,在OnClose事件中“delete from table”删除查询数据,后来发现,当多个人同时打开查询表单时出现插入很多次重复的记录,显然查询数据不正确,请问大家平时怎么做的?谁有这方面的经验指点一下,多谢!

解决方案 »

  1.   

    首先create table #表名
    用完之后 drop table #表名
      

  2.   

    f exists (select * from sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[表名]
      

  3.   


      if Object_ID('表名')>0  print 'Table Exists'
      

  4.   

    在程序里加入一个ado的查询或adocommand组件,在它的命令写如下代码:
    'if object_id(''tempdb.dbo.临时表名'') is not null drop table 数据库名.dbo.临时表名'
    如:临时表为#thmx
    adocommand1.CommandText:='if object_id(''tempdb.dbo.#thmx'') is not null drop table tempdb.dbo.#thmx';
    //判断#thmx临时表是否存在,如果存在则删除
      

  5.   

    你这样做也不是不可以但每一个人插临时表时要有一个不同的SEQUENCE号,然后按这个号删除~~~