我正在使用 SSIS 创建一些包。我对周围感到困惑数据转换变换组件并从高级编辑器更改列数据类型
如果我可以进入高级编辑器并更改输出的数据类型,为什么我需要输入数据转换?
这只是取决于偏好还是使用两种方法之间有区别吗?
在展示两种方法之间的差异之前,我将尝试概述数据转换类型。
隐式与显式转换
有 2 种不同类型的数据类型转换:
- 隐式转换:隐式转换对用户不可见。 SQL Server 自动将数据从一种数据类型转换为另一种数据类型。例如,当将smallint 与int 进行比较时,在比较继续之前,smallint 会隐式转换为int。
- 显式转换:显式转换使用 CAST 或 CONVERT 函数或其他工具。
从下面的 Microsoft Grid 中,您可以看到每种方法可以转换哪些数据类型:
如果您需要了解与SQL Server数据库引擎的数据类型相关的SSIS数据类型有哪些(在上面的网格中提到),那么你可以参考以下文档:
- 集成服务数据类型 https://learn.microsoft.com/en-us/sql/integration-services/data-flow/integration-services-data-types?view=sql-server-2017
高级编辑器与数据转换转换
- 当更改数据类型时高级编辑器你正在表演隐式数据类型转换因为源/目标组件尝试自动转换列的数据类型。
- Using 数据转换变换你正在表演显式转换。因为上面的文章提到了:
使用数据转换转换转换数据类型将列从一种数据类型转换为另一种数据类型
更多详情请参见:
- SSIS 数据类型:高级编辑器的更改与数据转换 https://www.sqlshack.com/ssis-data-types-change-from-the-advanced-editor-vs-data-conversion-transformations/
参考
- 数据类型转换(数据库引擎) https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-type-conversion-database-engine?view=sql-server-2017#implicit-and-explicit-conversion
- 数据转换变换 https://learn.microsoft.com/en-us/sql/integration-services/data-flow/transformations/data-conversion-transformation?view=sql-server-2017
- 使用 SSIS 数据类型 https://www.red-gate.com/simple-talk/sql/ssis/working-with-ssis-data-types/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)