【问题标题】:SSIS oledb destination property OpenRowSetSSIS oledb 目标属性 OpenRowSet
【发布时间】:2010-03-17 09:20:17
【问题描述】:

SSIS中oledb目标控件的OpenRowSet属性有什么意义?我的 SQL 管理员宣布了一项新策略,其中他说“使用 OpenRowset 查询的应用程序将无法运行”。所以我很担心我的包裹是否能用。 请指教。

【问题讨论】:

  • 他是如何执行的?这只是一项政策吗?我不知道您可以阻止 OpenRowset 针对 Sql Server 运行。他对 OpenRowset 的反对意见是什么?
  • William,OpenRowset 可以使用表面积配置工具禁用。我认为在 2005 年和 2008 年默认情况下它是禁用的。
  • 啊,这就解释了......我还没有从头开始设置很多服务器,所以我还没有遇到过。谢谢。

标签: sql ssis


【解决方案1】:

当你的包运行时,你能使用 SQL Profiler 检查底层发生了什么吗?您应该能够查看它是否使用 OpenRowset 查询。

【讨论】:

  • 您是否将表名提供给目标提供者?如果是这样,我相信这将使用 OpenRowset。您可能需要将属性更改为 SQL 命令并将其用于插入。
  • 我运行 SQL 探查器并没有找到任何 OpenRowSet 查询,这是否意味着无需担心 :) @revelator - 是的,我提到了表名,但从探查器跟踪我没有什么都找不到。
  • 尽管在 Profiler 中没有看到它,但目标可能仍然使用 OpenRowSet - 请参阅 Jamie Thomson 的这篇博文 - consultingblogs.emc.com/jamiethomson/archive/2006/08/14/… 如果您在目标中使用 SQL 命令,则应该使用 sp_executesql。
  • @revelator - 谢谢。所以如果我使用 SQL 命令很好,但是我需要编写完整的查询,例如插入表值(....)?我将如何映射列?你能解释一下吗?
  • 从@revelator 评论中的 Jamie Thompson 链接看来,您可以通过简单地使用 SqlServerDestination 而不是 OLEDB 目标来避免所有这些。无需使用 SQL 命令(总是慢得多,因为它一次执行一行而不是批量执行)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多