【发布时间】:2020-12-23 21:54:32
【问题描述】:
我必须将数据从 SQL Server 2012 加载到 SQL Server 20108 R2。我有一个数据类型为date 的列,在目标表中我的数据类型为datetime。当我尝试使用 SSIS 加载数据时,我收到一条错误消息,指出日期格式无效,有时我会遇到对话失败。
Source :
CREATE TABLE SourceTable(
[SSNO] [char](9) NOT NULL,
[SH_CHANGE_DATE] [date] NULL,
[SH_REASON_CODE] [char](2) NOT NULL,
[SH_ANN_SALARY] [decimal](8, 2) NOT NULL,
[GRADE] [char](2) NOT NULL,
[ITEM] [char](4) NOT NULL,
[MULTI_POSITNBR] [char](4) NOT NULL,
[STEP] [char](2) NOT NULL,
[OFF_STEP] [char](1) NOT NULL,
[SH_TITLE_NAME] [char](30) NOT NULL,
[SH_CHANGE_AMT] [decimal](7, 2) NOT NULL,
[SH_DIV_DIST_IND] [char](4) NOT NULL,
[SH_BUDGET] [char](3) NOT NULL,
[SH_ENGNO] [char](2) NOT NULL,
[SH_RCDADD_DATE] [date] NULL,
[SH_RCDADD_TIME] [time](0) NULL,
[SH_OCC_CATEGORY] [char](1) NOT NULL,
[SH_FULL_PART_CD] [char](1) NOT NULL,
[SH_SUPVY_CLASS] [char](1) NOT NULL,
[EMPLOYEE_NUMBER] [char](9) NOT NULL,
[T101_TSAL_HIST_PRIMARY_KEY] AS ((substring([SSNO],(1),(9))+substring(CONVERT([varchar],[SH_CHANGE_DATE],(112)),(1),(8)))+substring([SH_REASON_CODE],(1),(2))) PERSISTED NOT NULL,
CONSTRAINT SourceTableconstrain PRIMARY KEY CLUSTERED
(
[Source_PRIMARY_KEY] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
DESTINATION :
CREATE TABLE TableName(
[SSNO] [char](9) NOT NULL,
[SH_CHANGE_DATE] [datetime] NOT NULL,
[SH_REASON_CODE] [char](2) NOT NULL,
[SH_ANN_SALARY] [money] NULL,
[GRADE] [char](2) NULL,
[ITEM] [char](4) NULL,
[MULTI_POSITNBR] [char](4) NULL,
[STEP] [char](2) NULL,
[OFF_STEP] [char](1) NULL,
[SH_TITLE_NAME] [varchar](30) NULL,
[SH_CHANGE_AMT] [money] NULL,
[SH_DIV_DIST_IND] [char](4) NULL,
[SH_BUDGET] [char](3) NULL,
[SH_ENGNO] [char](2) NULL,
[SH_RCDADD_DATE] [datetime] NULL,
[SH_RCDADD_TIME] [varchar](6) NULL,
[SH_OCC_CATEGORY] [char](1) NULL,
[SH_FULL_PART_CD] [char](1) NULL,
[SH_SUPVY_CLASS] [char](1) NULL,
[EMPLOYEE_NUMBER] [char](9) NULL,
CONSTRAINT Tablename PRIMARY KEY CLUSTERED
(
[SSNO] ASC,
[SH_CHANGE_DATE] ASC,
[SH_REASON_CODE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
【问题讨论】:
-
从表面上看,这似乎不太可能。 SSIS 数据流引擎是强类型的。如果源列是日期时间并且目标也是日期时间并且它是 SQL Server 到 SQL Server,则不应发生任何转换。发布源和目标的表定义以及实际错误消息,最好是数据流的屏幕截图,这足以提供答案或提出更尖锐的问题
-
请查找所需信息
-
源是日期,目标是日期时间数据类型\
-
Sql Server 2012 和 Sql Server 2008 R2 都已达到生命周期结束。这意味着他们不再获得任何补丁...甚至对于关键的安全问题也没有。继续使用这些旧版本是危险和不负责任的。升级是第 1 项工作。
-
@JoelCoehoorn 2012 还不是 EoL,那是在 2022 年;它目前处于扩展支持状态。然而,2008 年确实在一年前就达到了 EoL。 2012 年仍在接收安全更新,实际上它在今年 2 月得到了一个。 KB4532098
标签: sql-server ssis