Sybase按照一定顺序导出bcp out表的字段

  • 来源: 赛迪网 作者: 若水   2008-03-26/14:20
  •         目前的需求:数据库中有存在一张表A,表A有四列c1 c2 c3 c4;要将A中所有记录的c1,c2,c3三个字段,按照c1 c2排序后导出到数据文件中。

    具体的分析:由于sybase中bcp后不能加sql语句,所以不能用bcp out select c1,c2,c4 from a order by c1,c2的方法来做。

    解决方法:

    1.更改表A的锁定类型locking scheme为allpages

     

    ALTER TABLE A LOCK ALLPAGES

     

    2.在表A的c1 c2列上创建聚簇索引

    CREATE CLUSTERED INDEX aindex ON A(c1,c2)

     

     

    3.创建视图只包含A的c1 c2 c3列

     

    create view aview as select c1,c2,c3 from a

     

     

    4.bcp导出视图

     

    bcp aview out aview.data -c -t'|' -Uuser -Ppassword -Sserver >aview.log

     

    总结:

    1.使用聚簇索引来强制限定A表中的记录的物理顺序。

    2.使用视图来选取需要导出的那些字段。

    3.BCP OUT视图其实就是按照表中记录的物理顺序导出数据。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多