比如:在A数据库有表血型
----
id  血型
1    A
2    B
3   AB
4    0
----
应该添o(英文o),但是添成了0(数字0)
将A中的血型转换到B
----
id  血型
1    A
2    B
3   AB
4    o
----
应该添将0装换成o,请问怎么实现?

解决方案 »

  1.   

    比如:在A数据库有表血型
    ----
    id  血型
    1    A
    2    B
    3   AB
    4    0
    ----
    应该添o(英文o),但是添成了0(数字0)
    将A中的血型转换到B数据库
    ----
    id  血型
    1    A
    2    B
    3   AB
    4    o
    ----
    应该添将0装换成o,请问怎么实现?
      

  2.   

    update 表 set 血型='O' where 血型='0'
      

  3.   

    to:baoshan(石头) 
        要设计DTS包,要定时转换,比如说夜里3:00,将A数据库中血型数据转换到B数据库中,并且将不0转换成o。
      

  4.   

    如果不想改客户端处理程序或者相关处理模块,用触发器来实现可能比DTS更好
      

  5.   

    我只是举一个例子,来说明DTS转换中,如何转换不合适的数据。
      

  6.   

    DTS、JOB懂得利用向导就应该都会创建。
      

  7.   

    DTS轉換可以寫script啊,支持包括vbscript等多種語言的
      

  8.   

    DTS向导只能实现导入导出吧。
      

  9.   

    並且DTS也可以執行 Execute SQL Task,可以直接下sql command,用 case  [血型] when '0' then 'o' else [血型] end 也可以轉換,方法很多的
      

  10.   

    to:playwarcraft(时间就像乳沟,挤挤还是有的) 
        您能否按这个题目具体实现一下呢?
      

  11.   

    就舉的這個例子:
    不能貼圖...偶就意思意思了,方法很多{sql connection} =======(transfor task)====>{sql connection}在transfor task的source中,選擇sql command,然後直接下sql,select id,case  [血型] when '0' then 'o' else [血型] end as [血型] 
    from A.dbo.血型表--------------------------------------
    或者拖2個connection分別連接A & B
    然後拖一個Execute SQL Task,直接下command,
    insert into B.dbo.血型表(id,[血型])
    select id,case  [血型] when '0' then 'o' else [血型] end as [血型] 
    from A.dbo.血型表
      

  12.   

    設計好DTS包,然後用dtsrun命令調用.
    簡單來說,可以做成.bat檔,然後用你的語言(C,java什麼),去調這個.bat包.dtsrun的命令格式可以參考幫助.舉個例子,以下是調用dts_yourname,帶3個參數:
    DTSRun /S %1 /E /N "dts_yourname" /A "@parm1":"8"="%2" /A "@parm2":"8"="%3" /A "@parm3":"8"="%4" /W "0"
      

  13.   

    --把字母'o'或'O' 改为数字'0'update t
    set name=(case when name='o' or name='O' then '0'else name end)--数字'0'改为字母'o'
    update t
    set name=(case when name='0'then 'o' else name end)把这句SQL语句建立作业,设定好时间它会实时更新的
      

  14.   

    这个例子不需要用脚本组建,dts 只支持 vb。net ,active X。不支持C#。
    用DTS编程其实不是用脚本组建的概念, 因该是 开发 Custom Component 
    比如:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SqlServer.Dts.Runtime;
    namespace SampleTask
    {
       public class SampleTask : Task
       {
       }
    }。。
    这种情况可以用建立数据流,添加 OLE DB Command 组建,在sql command中设置一下。
    或者直接在控制流中建立Execute SQL Task任务,直接用楼上提供的sql语句。(推荐)
      

  15.   

    fa_ge(非学无以广才,非志无以成学) 和intellectual1234567() 都是高手呀,能再详细点,或者推荐一本书,就好了。
      

  16.   

    在“开始”菜单中,依次指向“所有程序”、“Microsoft SQL Server 2005”,再单击 SQL Server Business Intelligence Development Studio。
          在“文件”菜单中,指向“新建”,再单击“项目”,以创建一个新的 Integration Services 项目。
          在“新建项目”对话框的“模板”窗格中,选择“Integration Services 项目”。
           在“名称”框中,将默认名称更改为 SSIS Tutorial。或者,清除“创建解决方案的目录”复选框。
         接受默认位置,或单击“浏览”,以浏览并找到要使用的文件夹。
           在“项目位置”对话框中,单击文件夹,再单击“打开”。
          单击“确定”。
           默认情况下,将创建一个名为 “新建包.dtsx“的空包,并将该包添加到项目中。
           在解决方案资源管理器工具栏中,右键单击 Package.dtsx,再单击“重命名”,将默认包重命名为 blood.dtsx。
          当系统提示重命名包对象时,单击“是”。
           首先添加导入数据的源
          右键单击“连接管理器”区域中的任意位置,再单击“OLEDB连接”。
          在“OLEDB连接编辑器”对话框的“连接管理器名称”字段中,键入 Source。
          单击“浏览”。
      在“配置OLE DB 连接管理器”对话框中,单击“新建”。
           在“服务器名称”中,输入 . (本机)。
           然后添加 a数据库 数据源
         
      
          (将 . 指定为服务器名称时,连接管理器将连接到本地计算机上Microsoft SQL Server 2005 的默认实例。若要使用SQL Server 2005 的远程实例,请将localhost 替换为要连接到的服务器的名称。)
          在“登录到服务器”组中,确认选择了“使用Windows 身份验证”。
           在“连接到数据库”组的“选择或输入数据库名称”框中,键入或选择a数据库。
           单击“测试连接”,验证指定的连接设置是否有效。
           单击“确定”。同样的方法再建立一个 b数据库 的连接。   单击“控制流”选项卡。
          在“工具箱”中,展开“控制流项”,并将一个数据流任务拖到“控制流”选项卡的设计图面上。
          在“控制流”设计图面中,右键单击新添加的数据流任务,再单击“重命名”,将名称更改为Import blood  Data。     打开“数据流”设计器,方法是双击Import blood  Data 数据流任务或单击“数据流”选项卡。
          在“工具箱”中,展开“数据流源”,然后将“oledb源”拖动到“数据流”选项卡的设计图面上。
          在“数据流”设计图面上,右键单击新添加的“oledb源”,单击“重命名”,然后将该名称更改为a Source Data。同样的方法拖放一个oledb 目标组件 配置 导b 数据库 b destination再a Source Data 和b destination 中间 从工具箱拖放一个 oledb command 组件。 把连个组件联起来。
    回到控制流中再数据流上面放置一个t-sql 语句任务,放入楼上的sql 语句。
    把t-sql任务组件和数据流任务组件连接起来运行就可以了        
      

  17.   

    再a Source Data 和b destination 中间 从工具箱拖放一个 oledb command 组件。这句话不要了
      

  18.   

    ls的好厉害啊...BI了...我还处于原始社会!
      

  19.   

    有兩個表 表a和表b 現在我想去掉表a 中表b有的數據行(意思就表a与表b哪條數據完全一樣就把牠去掉` )``再select出一個新表a
    Oracle的MINUS集合能做到```但我用的是T—SQL
    已知兩表結構完全相同
    6個字段請用abcdef代之
    最好能用一條SQL語句實現``因為要在winForm中去填充到表裡
    可用存儲過程做```
        高手99999
      

  20.   

    Java中通过jacob调用dts进行数据导入导出 
    关键字:   java jacob dts 导入导出     
    第一步: 
    下载jacob 
    http://danadler.com/jacob/jacobBin_17.zip 
    解压后将dll文件放到%JAVA_HOME%\jre\bin目录下,将jar文件放到%JAVA_HOME%\jre\lib\ext目录下,不用再配置环境变量第二步: 
    创建dts文件 
    直接用sqlserver2000的导入导出工具创建一个dts任务,并保存为存储结构文件,放到比如d:\temp\dts\dts_test.dts第三步: 
    通过java调用dts文件执行数据导入导出 
    代码
    package dbf;   
      
    import java.text.SimpleDateFormat;   
    import java.util.Date;   
    import com.jacob.activeX.*;   
    import com.jacob.com.*;   
      
    public class ExportDts {   
        public void exportdbf() {   
      
            SimpleDateFormat localTime  =   new  SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
               
            String importFileName = "D:/temp/dbf"; //这里导出的DBF要存放的路径   
            String DtsPath = "D:/temp/dts/dts_test.dts";  //这里是DTS文件的路径   
               
            try {   
                System.out.println("start:" + localTime.format(new Date()));   
                   
                ActiveXComponent app = new ActiveXComponent("DTS.Package2");   
           
      
                Dispatch.callN(app, "LoadFromStorageFile",new Variant[] {new Variant(DtsPath),new Variant("")});   
                   
                //重新设置路径   
                Dispatch DTSconns = Dispatch.get(app,"Connections").toDispatch();   
                Dispatch DTSconn = Dispatch.callN(DTSconns,"Item",new Variant[]{new Variant(2)}).toDispatch();   
                Dispatch.put(DTSconn,"DataSource",new String(importFileName));   
                   
                //执行   
                Dispatch.callN(app, "Execute", new Variant[] {});   
                   
                //得到执行的结果   
                Dispatch DTSsteps = Dispatch.get(app,"Steps").toDispatch();   
                Dispatch DTSstep = Dispatch.callN(DTSsteps,"Item",new Variant[]{new Variant(1)}).toDispatch();   
                Variant ResultValue = Dispatch.get(DTSstep,"ExecutionResult");   
                   
                if(ResultValue.toInt()==0){   
                    System.out.println("导出成功");   
           
                }else{   
                    System.out.println("导出失败");   
           
                }   
                System.out.println("end:" + localTime.format(new Date()));   
            } catch (Exception ex) {   
               ex.printStackTrace();   
            }   
        }   
    }