我想在VB中写一个SQLSERVER的数据追加程序:
具体如下:
1、有两个数据库服务器,分别为SQLSERVER1和SQLSERVER2,他们都有D1这个库,在D1这个库里都有table1这个表,并且table1的结构是一样的,有字段:clnvCode,clnvAddCode,clnvName,clnvStd,clnvCCode等字段
2、在SQLSERVER1的D1这个库里的table1这个表里的clnvCode字段的内容为编码方式有以下三种XXXXX-XXX-*,XXXXX-XXXX-*,XXXXXXXXXXXXXX(X代表位数,*代表不限制位数)
3、现将SQLSERVER1的D1这个库里的table1这个表里的clnvCode字段的编码方式为XXXXX-XXX-*追加到SQLSERVER2的D1这个库里的table1这个表里的clnvCode和clnvAddCode字段里并且在clnvCode字段编码要在第一个“-”号后加上一个“H”即变为:XXXXX-HXXX-*而clnvAddCode字段就直接加过去
4、将SQLSERVER1的D1这个库里的table1这个表里的clnvCode字段的编码方式为XXXXX-XXXX-*的在第二个“-”号前的字符为H的也加到SQLSERVER2的D1这个库里的table1这个表里的clnvCode和clnvAddCode字段里并且在clnvCode编码要在第一个“-”号后加上一个“H”即变为:XXXXX-HXXXH-*而clnvAddCode字段就直接加过去
5、将SQLSERVER1的D1这个库里的table1这个表里的clnvCode字段的编码方式为XXXXXXXXXXXXXX的加到SQLSERVER2的D1这个库里的table1这个表里的clnvCode和clnvAddCode字段里
6、其它的相应字段如clnvName,clnvStd,clnvCCode等就直接追加过去
7、SQLSERVER1的D1这个库里的table1这个表大约有五万条记录,并且经常更新
8、SQLSERVER1的D1这个库里的table1参考数据
clnvCode             clnvAddCode          clnvName
87502-HZE-010        87502-HZE-010        贴纸
10000-HGSH-1001                           锁
HWY0C09KF0B1QZ                            电机请问以上如何操作比较好,谢谢!!!

解决方案 »

  1.   

    cn.Execute "insert into D2..table1(clnvCode,clnvAddCode,clnName,clnvStd,clnvCCode)" _
            & " select case clnvCode when like '_____-___-%'  then stuff(clnvCode,7,0,'H')" _
                                & "  when like '_____-___H-%' then stuff(clnvCode,7,0,'H')" _
                                & "  when like '______________' then clnvCode" _
                    & " end," _
            & " clnvCode,clnName,clnvStd,clnvCCode" _
            & " from D1..table1" _
            & " where clnvCode like '_____-___-%' or clnvCode  like '_____-___H-%' or clnvCode  like '______________'"
      

  2.   

    或者:
    cn.Execute "insert into D2..table1(clnvCode,clnvAddCode,clnName,clnvStd,clnvCCode)" _
            & " select t.* from (" _
                        & " select stuff(clnvCode,7,0,'H') as clnvCode,clnvCode as clnvAddCode,clnName,clnvStd,clnvCCode" _
                        & " from D1..table1" _
                        & " where clnvCode like '_____-___-%'" _
                        & " Union All " _
                        & " select stuff(clnvCode,7,0,'H') as clnvCode,clnvCode as clnvAddCode,clnName,clnvStd,clnvCCode" _
                        & " from D1..table1" _
                        & " where clnvCode like '_____-___H-%'" _
                        & " Union All " _
                        & " select clnvCode,clnvCode as clnvAddCode,clnName,clnvStd,clnvCCode" _
                        & " from D1..table1" _
                        & " where clnvCode like '______________' then clnvCode" _
                        & ") t"
      

  3.   

    不知我理解是不是清,楼主的目标是:要将一个SQLServer1服务中D1数据库中表名为:table1的数据放入SQLServer2服务中D1数据库中表名为:table1中去(至于条件可以自己定,我想只要对SQL语句没问题应该可以解决,关键是不懂方法)。
    方法如下:
    第一步:链按服务器(方法一、sp_addlinkedServer,sp_AddlinkedsrvLogin;方法二:SQLServer1-安全性-右键-新建链接服务器;具体方法自己看“联机丛书”去。)
    第二步:写SQL语句(随你怎样写)
    多试几次,可能开始时不能通过,多试几下就可以了。