OLE DB 源 SQL 更改不显示,除非重建连接
OLE DB Source SQL changes not showing unless connection rebuilt
我在数据流任务的 OLE DB 源中有一些 SQL,然后有一个到平面文件目标的数据流路径。很简单的过程。 运行 SQL,输出文件到csv.
我必须对 SQL 进行一些更改,这会更改其中一列的输出。将其从 True/False 更改为 1/0 输出。我在 SQL 中进行了更改,但输出没有改变,仍然显示 True/False.
我将完全相同的 SQL 复制出来,将其粘贴到同一数据流任务中的新 OLE DB 源中。使用连接管理器中的相同连接将它连接到相同的平面文件目标,它工作正常并向我显示 1/0 的正确输出。
有没有一种方法可以“刷新”OLE DB 源,以便它可以获取更改,这样我就不必重新创建需要更改的每个源?知道为什么它没有更新任何更改吗?
如果您对源进行更改并且新数据类型适合旧数据类型并且列保持不变,则 SSIS 可能不会“听到”该列更改(组件不会触发 ReinitializeMetaData
)
遇到这种情况,我会
- 复制现有查询
- 将查询替换为
SELECT 1 AS Garbahfooewoe2ztk;
,然后单击“确定”
- 在数据流报告有关先前映射的列不存在的错误后,将原始查询粘贴回源组件,每个人都会很高兴。
显然,如果您有一个 Garbahfooewoe2ztk
这将不起作用,但概念是完全更改源元数据集合,然后换回原始元数据集合。
我在数据流任务的 OLE DB 源中有一些 SQL,然后有一个到平面文件目标的数据流路径。很简单的过程。 运行 SQL,输出文件到csv.
我必须对 SQL 进行一些更改,这会更改其中一列的输出。将其从 True/False 更改为 1/0 输出。我在 SQL 中进行了更改,但输出没有改变,仍然显示 True/False.
我将完全相同的 SQL 复制出来,将其粘贴到同一数据流任务中的新 OLE DB 源中。使用连接管理器中的相同连接将它连接到相同的平面文件目标,它工作正常并向我显示 1/0 的正确输出。
有没有一种方法可以“刷新”OLE DB 源,以便它可以获取更改,这样我就不必重新创建需要更改的每个源?知道为什么它没有更新任何更改吗?
如果您对源进行更改并且新数据类型适合旧数据类型并且列保持不变,则 SSIS 可能不会“听到”该列更改(组件不会触发 ReinitializeMetaData
)
遇到这种情况,我会
- 复制现有查询
- 将查询替换为
SELECT 1 AS Garbahfooewoe2ztk;
,然后单击“确定” - 在数据流报告有关先前映射的列不存在的错误后,将原始查询粘贴回源组件,每个人都会很高兴。
显然,如果您有一个 Garbahfooewoe2ztk
这将不起作用,但概念是完全更改源元数据集合,然后换回原始元数据集合。