同标题,各位在大数据量的数据库中是分表存放数据还是合并到一个数据表中?欢迎指教!

解决方案 »

  1.   

    IF EXISTS (SELECT *
                    FROM sysdatabases
                    WHERE name = '数据库名称') 
    BEGIN
      DROP database 数据库名称
    END;
    CREATE database 数据库名称;
      

  2.   

    if exists(select table_name from information.schema.tables
    where table_name='name')
    drop table 'name'
      

  3.   

    不好意思,错了,应该是
    if exists(select table_name from information_schema.tables
    where table_name='name')
    drop table 'name'
      

  4.   

    如果你采用okgxs(叶风铃1) 的方法,那么要加上
    use master
    因为sysdatabases是在master中的
      

  5.   

    为什么一定要分月建表呢?反正SQL可以执行很强劲的查询功能,需要自己给自己找麻烦吗?假如你有48个月的数据,要建48个表的话,你怎么样查询啊?程序怎么写啊?晕~~~~~~我觉得一个表就够了啊,里面有月份关键字段就可以了啊。
      

  6.   

    adoquery1.close;
    Adoquery1.SQL.clear;
    adoquery1.SqL.add('sp_tables 你要查的表名');
    Adoquery1.open;if Adoquery1.RecordCount>1 then
      //说明有这个表
    else
      //说明没有这个表//-----------------------------------------------
    if exists(select table_name from information_schema.tables
    where table_name='name')
    drop table 'name'如果用这种方式的话,在没有表的情况下会出错!
      

  7.   

    if Adoquery1.RecordCount>0 then
      //说明有这个表
    else
      //说明没有这个表对不起,刚才这几段写错了,特此更正
      

  8.   

    我要分月建表是因为每个月的数据量都非常大,有几十万条记录,不用分月建表工作效率会很慢吧?因为程序的实时性要求比较高。谢谢wooden954(wooden)的耐心解答。
      

  9.   

    同意 leon2k(LEON) ,现在不是当年的FOXPRO了,
    表可采用两个:一个放当前用的,如当月数据,另一个放
    所有非当前用的数据,要查询所有数据时,用UNION做个合并
    视图再查询,这比你1000个表要简单!
      

  10.   

    如何在ado控件中,如何获得数据库系统中的存在的数据库名字呢?
      

  11.   

    不用啦,加一个年报表,一个月报表,做二个存贮过程,另,多用TOP等来减少检索量
      

  12.   

    UNION的速度好象没有直接的快!!!
      

  13.   

    if not exists(select name from sysobjects where name='table name ' and xtype='u')
       begin
        create table Table_name
         (
               )
       end
    ------------------------------------------
      

  14.   

    一个大的历史,一个小的当前表,需要时把以前的历史数据导入本地。但在程序中应该对报表的处理做出日期选择,让用户任选时间段,以避免统计到历史数据。另一问题(表是否存在)同意goldencity(响马)的处理方法。