sql-server - 从高级编辑器更改数据类型与数据转换

标签 sql-server ssis etl sql-server-data-tools ssis-data-types

我正在使用 SSIS 创建一些包。我对数据转换组件和从高级编辑器更改列数据类型感到困惑

如果我可以进入高级编辑器并更改输出的数据类型,为什么我需要输入数据转换?

这只是取决于偏好还是使用两种方法之间有区别吗?

最佳答案

在展示两种方法之间的差异之前,我将尝试概述数据转换类型。

隐式与显式转换

有2种不同类型的数据类型转换:

  • 隐式转换:隐式转换对用户不可见。 SQL Server 自动将数据从一种数据类型转换为另一种数据类型。例如,当将smallint 与int 进行比较时,在进行比较之前,smallint 会隐式转换为int。
  • 显式转换:显式转换使用 CAST 或 CONVERT 函数或其他工具。

从下面的 Microsoft Grid 中,您可以看到每种方法可以转换哪些数据类型:

enter image description here

如果您需要了解与SQL Server数据库引擎的数据类型相关的SSIS数据类型有哪些(在上面的Grid中提到),那么您可以引用以下文档: p>


高级编辑器与数据转换

  • 高级编辑器更改数据类型时,您正在执行隐式数据类型转换,因为源/目标组件会尝试自动转换列的数据类型。
  • 使用数据转换,您正在执行显式转换。由于上面的文章提到:

Use the Data Conversion transformation to cast the data type of a column from one data type to a different data type

更多详细信息可以在以下位置找到:


引用文献

关于sql-server - 从高级编辑器更改数据类型与数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55362367/

相关文章:

ssis - 在 SSIS 中,将文本文件名添加为结果数据集中的列

c# - SSIS ExecutePackageTask 在 SQL Server 2016 中不可用

c# - 如何在 .Net 中读取 .ETL 文件?

etl - Pentaho Kettle 的架构在哪里?

sql-server - INSTR() 和 CHARINDEX() 之间有什么区别吗?

c# - 使用 DataTable 插入或更新 SQL 表

sql - 在 System.Data.Linq.DataContext 对象上重新编译查询提示

sql - 在使用 View 的查询中使用WITH NOLOCK 表提示 - 它是否在 View 内传播?

ssis - SSIS 文件名中的通配符

sql-server - 传递SSIS参数/变量值的最佳方法