还有一个问题
本人在使用left join的时候
在MYSQL下执行很正常的语句
在SQLSERVER上就报错列前缀'a'与查询中所用的表名和别名不匹配奇怪之极能回答者一并加分

解决方案 »

  1.   

    我的代码就是
    adoquery1.post 
    :)
    这个错误是跟踪不到的
    所以扎手
      

  2.   

    创建的任何临时表本来就放在tempdb数据库中
      

  3.   

    我此时用的是ADO自动的提交post
    按说它是爱往哪送数据往哪送
    而且我别的地方一样使用这种方法
    不会错 完成了
    我提交是在事务中提交的 不知道会不会有影响
    还有就是第二个问题
    我是使用了insert into select XXX from XXX left join XX on xxx.id=xx.id
    这样的
      

  4.   

    1、你是用sa连接数据库的吗??你怎么用的,我是说t-sql脚本,不是delphi代码2、你join 的代码呢?你肯定写错了。或mssql不兼容mysql的写法。你也贴出看看
      

  5.   

    俺是用SA连接数据库没错
    别的地方都正常能用
    T_SQL脚本由ADO POST数据时自己生成
    没写DELPHI代码
    我怀疑是在事务中的原因"join" as following
     insert into #tmp1728(xh,id,bh,wzid,mc,gg,dw,brs,srs,dj,ckid,sbm,qsl,q_r,q_r_name,treat,treatname)
     select a.xh,a.id,b.bh,a.wzid,b.mc,b.gg,b.dw,
    a.sl as brs,a.sl as srs,a.dj,a.ckid,sbm,qsl,a.q_r, 
    c.p_name,treat,case treat when 0 then ''正常入库'' when 1 then ''等待议价'' when 2 then ''准备退货'' end 
     from wl_rk a,wzb b left join gx_infclass c on a.q_r=c.id 
     where a.wzid=b.id and a.id=''LC1213343'
      

  6.   

    insert into #tmp1728(xh,id,bh,wzid,mc,gg,dw,brs,srs,dj,ckid,sbm,qsl,q_r,q_r_name,treat,treatname)
     select a.xh,a.id,b.bh,a.wzid,b.mc,b.gg,b.dw,
    a.sl as brs,a.sl as srs,a.dj,a.ckid,sbm,qsl,a.q_r, 
    c.p_name,treat,case treat when 0 then '正常入库' when 1 then '等待议价' when 2 then '准备退货' end 
     from wl_rk a join wzb b on a.wzid=b.id left join gx_infclass c on a.q_r=c.id 
      where a.id='LC1213343'
      

  7.   

    HEHE 大力兄
    第一个问题俺找到了
    不是周期的问题
    俺是在DELPHI中执行的这段代码
    应该是一个会话中的 在连接期间不会释放掉
      

  8.   

    第二个问题也解决了
    多谢大力兄的帮忙 
    没想到在MYSQL中完全正常的语句在SQLSERVER检查如此严格
    其实第一个问题 根源很奇怪 就是非空列没有插入值引起的
    谢谢参与的各位 
    尤其是大力兄
    给分了