Chinaunix

标题: DTS全局变量如何带入SQL查询语句中 [打印本页]

作者: latey    时间: 2010-08-05 09:59
标题: DTS全局变量如何带入SQL查询语句中
如题,DTS包全局变量,怎么带入转换数据任务中的SQL查询,有教程之类的吗?谢谢,数据库是SQL2000。
另外包的全局变量如何从数据库中读取字段,谢谢
作者: 云杉上的蝴蝶    时间: 2010-08-05 17:35
DTS参数传递示例

-- 1. 建立测试表

CREATE TABLE tempdb.dbo.tb(id int)

-- 2. 新建一个DTS包

在包中建立:
a. Microsoft OLE DB Provider for SQL Server连接
b. 执行 SQL 任务
   任务的“SQL语句“写上: insert tb values(?)
       单击“参数”按钮,打开“参数映射”对话框
       单击“创建全局变量”按钮,创建一个名为value,类型为integer,值为1的全局变量
   单击“确定”按钮回到“参数映射”对话框,在“参数映射”列表中,为”参数1“的”输入全局变量“选择”value\"
   单击“确定”按钮回到\"DTS包定义”窗口
c. 保存DTS包,包名指定为a,位置指定为\"SQL Server\"

-- 3. 新建一个包,用以调用包a

在包中建立:
a. 执行包任务
   在“常规”选项的“包名称”中选择步骤2中建立的包名a
   在“外部全局变量”选项中,输入变量名 value。(对应步骤2中包的全局变量)
b. 保存DTS包,包名指定为b,位置指定为\"SQL Server\"

-- 4. 执行包,查看结果

EXEC master.dbo.xp_cmdshell \'dtsrun /S /E /N\"b\" /A\"value\":3=\"2\"\'
EXEC master.dbo.xp_cmdshell \'dtsrun /S /E /N\"b\" /A\"value\":3=\"3\"\'
EXEC master.dbo.xp_cmdshell \'dtsrun /S /E /N\"b\" /A\"value\":3=\"5\"\'
EXEC master.dbo.xp_cmdshell \'dtsrun /S /E /N\"b\" /A\"value\":3=\"10\"\'
SELECT * FROM tempdb.dbo.tb
DROP TABLE tempdb.dbo.tb
作者: latey    时间: 2010-08-06 11:23
回复 2# 云杉上的蝴蝶
感谢,此方法可以应用在执行SQL任务中,但是我想应用在转换数据任务中应该怎样处理呢,源数据是SYBASE,点击参数会导致包错误信息,提示如下
:HRESULT of 0x80040e51(-2147217839) returned  出现意外错误。返回了错误结果,但没有错误信息




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2