以下是我在前一个贴子中求助的内容,问题已经解决,用的是union all连接串,能够查询,现在又有新问题:多个人查询时有时查不到,是不是有什么冲突
http://topic.csdn.net/u/20111009/15/bf137677-588d-4c2c-9374-9b70de0b3a41.html这是一个查询界面,起始日期与结束日期的间隔为60天,也就是能查询60天的内容,后台数据库每一天对应一个库表(也就最多要查询60个库表),这样的查询用什么方式比较好,库表如下所示:
http://www.e-unionpay.com/images/QQ截图未命名_6.jpg

解决方案 »

  1.   


    动态拼接,union all 执行。 估计效率不高。LZ每天的库表数据量如何?
      

  2.   

    动态执行
    delcare @sql varchar(max)
    select @sql=isnull(@sql+'union ','')+'select * from '+name from sys.object 
                where right(name,8) between @begintime and @endtime
    exec(@sql)
      

  3.   

    这个怎么用,不会这么用,这是我程序里的代码If stSql = "" Then
                    stSql = "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
                Else
                    stSql = stSql & " union all " & "select * from [L2SettleDB].[dbo].[l2_L" & Format(DateAdd("d", i, da), "yyyyMMdd") & "] " & strSql
                End If
      

  4.   

    只有select查询会导致数据冲突吗
      

  5.   

    表很多,在1-60之间,用union all连接,这个有问题吗,或者有什么解决办法
      

  6.   

    存储过程这样写:create procedure [dbo].[reader_proc]
    (
    @param varchar(max)
    )
    as
    declare @sql varchar(max)
    set @sql=@param
    exec @sql
    vb.net中调用存储过程:sql = "select * from [L2SettleDB].[dbo].[l2_L20110102]  where merch_id='002853110000008' and sett_postdate>='20110102' and sett_postdate<='20110228'"
    Dim strsql = "data source=192.168.0.188;database=L2SettleDB;User ID=sa;pwd=12345678"    'OK 清算机
    myconnection = New SqlConnection(strsql)
    Dim ds As New DataSet()
    Dim da1 As New SqlDataAdapter()
    da1.SelectCommand = New SqlCommand()
    da1.SelectCommand.Connection = myconnection
    da1.SelectCommand.CommandText = "reader_proc"
    da1.SelectCommand.CommandType = CommandType.StoredProcedure
    da1.SelectCommand.Parameters.Add("@param", SqlDbType.VarChar)
    da1.SelectCommand.Parameters("@param").Value = sql
    'da1.Fill(ds)SQL语句在程序中动态拼写,传给存储过程,这样写对吗,为什么执行这个语句就不能往下执行了呢?da1.Fill(ds),有什么错误的地方吗?