1,Azure 访问地址
1,国际版
https://portal.azure.com/#homehttps://portal.azure.com/#home2,世纪互联中国版
Microsoft Azure 由世纪互联运营https://portal.azure.cn/2,创建资源组并且所有的后续组件都是再此资源下面创建。


3,创建Data Factory 工具

4,核心组件
- 管道(Pipeline)
-
功能:逻辑工作流容器
-
特点:
-
由多个活动组成
-
支持参数化
-
可调度执行
-
-
典型使用:定义完整的数据处理流程
- 活动(Activity)
-
功能:管道中的单个处理步骤
-
类型:
-
数据移动(如Copy)
-
数据转换(如Data Flow)
-
控制流(如If Condition)
-
-
示例:从Blob复制数据到SQL DB
- 数据集(Dataset)
-
功能:输入/输出数据的结构定义
-
特点:
-
指向具体数据存储
-
定义数据格式
-
支持分区定义
-
-
示例:定义Azure SQL表的结构
- 链接服务(Linked Service)
-
功能:连接外部资源的定义
-
特点:
-
包含连接信息
-
支持多种认证方式
-
可重用
-
-
示例:连接到Azure SQL Database的服务
- 集成运行时(Integration Runtime)
-
功能:执行环境基础设施
-
类型:
-
Azure IR(完全托管)
-
自托管IR(本地/混合云)
-
Azure-SSIS IR(运行SSIS包)
-
-
选择依据:网络环境与性能需求
- 触发器(Trigger)
-
功能:管道执行调度机制
-
类型:
-
计划触发器(定时)
-
事件触发器(如Blob上传)
-
手动触发器
-
-
示例:每天凌晨1点触发数据加载
5,抽取Demo
1)创建元数据表以及需要抽取的2个表。
CREATE TABLE [META].[META_SOURCE_OBJECTS]
(
SYSTEM_NAME\] \[nvarchar\](100) NULL,--source_system_name 指定系统EBS系统 \[DATABASE_NAME\] \[nvarchar\](100) NULL,--source_DB_NAME 指定数据库APPS DB \[SCHEMA_NAME\] \[nvarchar\](100) NULL,--Synapse-schema_name 指定架构ODS \[OBJECT_NAME\] \[nvarchar\](255) NULL,--Synapse-Object_name 指定表名Customer \[INGEST_PATTERN\] \[nvarchar\](50) NULL,--Full,Increment,Special 指定抽取模式 increment \[TRIGGER_TIME\] \[nvarchar\](100) NULL,--0100 start-time at 01:00 AM 指定抽取开始时间 \[ACTIVITY_CONFIG\] \[nvarchar\](4000) NULL,--{"field_name":"CREATED_DATE_TIME"} 指定增量字段 \[ENABLED\] \[bit\] NOT NULL,-- enabled_status Y是启动,N是不启动 \[USER_DEFINE_CONFIG\] \[nvarchar\](4000) NULL,--{"target_name":"EKKO"}--用户自定义例如表,或者需要指定抽取的时间 getdate()-30 \[CREATE_TIME\] \[datetime\] NULL --指定创建时间 ) DECLARE @DynamicQuery NVARCHAR(MAX); SELECT @DynamicQuery = STRING_AGG( CONCAT('SELECT ', '''', SYSTEM_NAME, ''' AS SYSTEM_NAME, ', '''', DATABASE_NAME, ''' AS DATABASE_NAME, ', '''', SCHEMA_NAME, ''' AS SCHEMA_NAME, ', '''', OBJECT_NAME, ''' AS OBJECT_NAME, ', '''', INGEST_PATTERN, ''' AS INGEST_PATTERN, ', '''', TRIGGER_TIME, ''' AS TRIGGER_TIME, ', '''', ACTIVITY_CONFIG, ''' AS ACTIVITY_CONFIG, ', '''', ENABLED, ''' AS ENABLED, ', '''', USER_DEFINE_CONFIG , ''' AS USER_DEFINE_CONFIG ,', '''', CREATE_TIME , ''' AS CREATE_TIME ,', '''', JSON_VALUE(ACTIVITY_CONFIG, '$.field_name') ,''' AS field_name,', '', USER_DEFINE_CONFIG , ' AS Filter_Date ' ), ' UNION ALL ' ) FROM META.META_SOURCE_OBJECTS where object_name ='GLD_BILLING_BUNDLE_TRIPS' system_name='EBS' and ENABLED=1; -- 添加调试输出 PRINT @DynamicQuery; EXEC sp_executesql @DynamicQuery; --其中 json_value function直接可以使用, 参数user_define_config 是动态参数 1,新增lookup组件 2,新增 forEach组件获取上一步lookup中查询的表数据 @activity('table_lists').output.value  3,新增Switch 组件判断抽取模式@item().INGEST_PATTERN  4,根据不用条件执行对应的抽取 如下是Full 模式源数据 查询语句@concat('SELECT \* FROM ', item().SCHEMA_NAME ,'.',item().OBJECT_NAME)  目标执行语句@{concat('truncate table ', 'STG_GOLD.', item().OBJECT_NAME)}  Mapping 不需要设置,但是Setting需要有个存储账号来存储信息  5,对于stateful 源数据 @concat('SELECT \* FROM ', item().SCHEMA_NAME, '.', item().OBJECT_NAME, ' WHERE ', item().field_name, ' \>= to_date(''', item().LAST3MONTH_DAY, ''',''yyyy-MM-dd'')')  对于目标 @concat('DELETE FROM STG_GOLD.', item().OBJECT_NAME, ' WHERE ', item().field_name, ' \>= CONVERT(DATE, ''', item().LAST3MONTH_DAY, ''') ' )  setting 设置  对于抽取Ihistorian 数据 DECLARE @errorMessage nvarchar(4000) DECLARE @TestVar NVARCHAR(MAX) DECLARE @Interval nvarchar(max) ='60' DECLARE @TestServer NVARCHAR(MAX) = 'PA4' DECLARE @FullTag NVARCHAR(MAX) = @TestServer + '/' + @TestVar DECLARE @StartTime DATE = FORMAT(DATEADD(DAY,-1,DATEADD(HOUR, 8, GETUTCDATE())),'yyyy-MM-dd') DECLARE @EndTime DATE = FORMAT(DATEADD(DAY,-0,DATEADD(HOUR, 8, GETUTCDATE())),'yyyy-MM-dd') DECLARE @TMP_TABLE TABLE ( [TAGNAME] [varchar](200) NULL,[TIME_STAMP] [datetime] NULL,[VALUE] [varchar](50) NULL,[QUALITY] [varchar](50) NULL ) DECLARE @TAG_TABLE TABLE (TAG NVARCHAR(MAX)) DECLARE C_DATE CURSOR FOR SELECT CONVERT(NVARCHAR(10),DATEADD(DAY,number-1,@StartTime),120) AS StartTime, CONVERT(NVARCHAR(10),DATEADD(DAY,number+1,@StartTime),120) AS EndTime , T.TAG AS TestVar FROM master..spt_values CROSS JOIN @TAG_TABLE T WHERE type = 'p' AND number <= DATEDIFF(DAY,@StartTime,@EndTime) INSERT INTO @TAG_TABLE select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Beijing_PBSG.Beijing_PBSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Changzhou_CND.Changzhou_CND.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Chongqing_LSG.Chongqing_LSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Guangzhou_PGIG.Guangzhou_PGIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Hefei_PHFIG.Hefei_PHFIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG1.Huizhou_PHIG1.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Huizhou_PHIG2.Huizhou_PHIG2.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/JiaXing_PJIG.JiaXing_PJIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jining_PJNIG.Jining_PJNIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Jiujiang_Bluestar.Jiujiang_Bluestar.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Langfang_LGL.Langfang_LGL.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ECOVAR.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/LuAn_Julan.LuAn_Julan.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Maanshan_BMG.Maanshan_BMG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Meishan_PSMI.Meishan_PSMI.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_BYG.Nanjing_BYG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_LNCIP.Nanjing_LNCIP.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Nanjing_NPNIG.Nanjing_NPNIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN1.Ningbo_LGN1.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LGN4.Ningbo_LGN4.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Ningbo_LZG.Ningbo_LZG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qingdao_PQIG.Qingdao_PQIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qingdao_PQIG.Qingdao_PQIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Qinzhou_PGXG.Qinzhou_PGXG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG.Quanzhou_LFG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LFG2.Quanzhou_LFG2.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Quanzhou_LQG.Quanzhou_LQG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_BSG.Shanghai_BSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_PSS.Shanghai_PSS.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_SPBI.Shanghai_SPBI.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shanghai_SPBI.Shanghai_SPBI.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Shaoguan_PSG.Shaoguan_PSG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Suzhou_SIPIII.Suzhou_SIPIII.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Taixing_Jinyan.Taixing_Jinyan.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Wuwei_PAIG.Wuwei_PAIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Haicang.Xiamen_Haicang.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Jimei.Xiamen_Jimei.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Xiamen_Jimei.Xiamen_Jimei.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yangzhou_PYIG.Yangzhou_PYIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Yantai_LGY.Yantai_LGY.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zhangzhou_LZG.Zhangzhou_LZG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/ZhenJiang_PZIG.ZhenJiang_PZIG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LAR.LAR.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LIN.LIN.Storage.Content.Actual.Now.Hour' union all select 'PA4/Zibo_BQG.Zibo_BQG.ASU.Common.LOX.LOX.Storage.Content.Actual.Now.Hour' OPEN C_DATE FETCH NEXT FROM C_DATE INTO @StartTime,@EndTime,@TestVar WHILE (@@FETCH_STATUS = 0) BEGIN INSERT INTO @TMP_TABLE EXEC [dbo].[api_gs_avgarray] @TagName = @TestVar, @Server = @TestServer, @StartDate = @StartTime, @EndDate = @EndTime, @Interval = @Interval, @errorMessage = @errorMessage FETCH NEXT FROM C_DATE INTO @StartTime,@EndTime,@TestVar END CLOSE C_DATE DEALLOCATE C_DATE SELECT TAGNAME,dateadd(hour,8,TIME_STAMP) as TIME_STAMP,VALUE ,QUALITY FROM @TMP_TABLE where dateadd(hour,8,TIME_STAMP) >= dateadd(day,-1,cast( dateadd(hour,8,getdate()) as date)) order by TIME_STAMP asc 对于调用excel 子文件 6,监控