作为RDC的替代方法,我只是跳过在SSIS中转换数据类型,并在源查询中将它们显式转换为nvarchar。
用法
在源查询中(并且您正在使用源查询,而不仅仅是在下拉列表中选择表),将内容显式转换为适当的n(var)char长度。
代替
SELECT
E.BusinessEntityID
, E.NationalIDNumber
, E.LoginID
, E.JobTitle
, E.BirthDate
, E.MaritalStatus
, E.Gender
FROM
HumanResources.Employee AS E
使用诸如
SELECT
CAST(E.BusinessEntityID AS nvarchar(10)) AS BusinessEntityID
, CAST(E.NationalIDNumber AS nvarchar(15)) AS NationalIDNumber
, CAST(E.LoginID AS nvarchar(256)) AS LoginID
, CAST(E.JobTitle AS nvarchar(50)) AS JobTitle
, CAST(E.BirthDate AS nvarchar(10)) AS BirthDate
, CAST(E.MaritalStatus AS nchar(1)) AS MaritalStatus
, CAST(E.Gender AS nchar(1)) AS Gender
FROM
HumanResources.Employee AS E
精通AdventureWorks的学生会认识到数据已经是一种n(var)char
类型,但这仅仅是为了演示这一概念。
好处
- 使用更少的内存。当前,您将通过使用
Data Conversion Component
SSIS 分配和存储“相同”数据的两个副本
- 没有RSI。无需单击N次并在它们提供的可怕的小编辑器中指定所有信息。我将对dmv / information_schema使用查询,以进一步自动生成“ Excel ready”表导出。
- 没有自定义组件安装。我曾在安装开源软件的地方工作过。由于现在“每个人”都需要安装相同的应用程序来维护您的代码,并且需要在服务器上进行安装,而 Infosec需要仔细检查程序集以确保它们有效,因此安装第三方应用程序也存在递延的维护成本。而且我们需要超过您的数以亿计的人的批准...