USE [FTIR2017]
GO
/****** Object: StoredProcedure [dbo].[Import_OrginalData] Script Date: 2018/8/4 15:45:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/**
关键1:避免无当日数据和表格信息,而导致数据综合导入的中断
-- 判定当前的数据库是否有存在对应的表格信息
IF EXISTS (SELECT * FROM dbo.SysObjects WHERE ID = object_id(N'[Opera_Main]') AND OBJECTPROPERTY(ID, 'IsTable') = 1)
PRINT '存在'
ELSE
PRINT'不存在'
**/
ALTER proc [dbo].[Import_OrginalData]
@startTime datetime,
@endTime datetime,
@Base_StationInfo_ID int, -- 站房ID
@Base_InstrumentInfo_ID int -- 设备ID
AS
BEGIN
DECLARE
@startYearInt int, --起始年
@startMonthInt int, --起始月
@startDayInt int, --起始日
@endYearInt int, --截止年
@sendMonthInt int, --截止月
@endDayInt int, --截止日
@difftime int, --时间差
@tabName varchar(255), --变量表名,即日原始数据表名
@insertOrginalDataSql nvarchar(4000), --插入语句(日数据列插入因子名称表中)
@updateNullSQL nvarchar(200), --更新语句
@insertSrt nvarchar(2000), -- 插入列
@fromStr nvarchar(2000), -- 来源列
@columnName varchar(255) --列名
;
--1.将输入的起始及截止参数,补加到对应12点
SELECT @startTime = DATEADD(HOUR,12,@startTime);
SELECT @endTime = DATEADD(HOUR,12,@endTime);
--2.判断对应日数据范围的表名
SELECT @difftime = DATEDIFF(DAY,@startTime,@endTime);
IF @difftime>=1
SQL server实战篇(七)
最新推荐文章于 2024-04-24 08:30:00 发布