Sql server SSI中OLE DB参数的优先级顺序是什么?

Sql server SSI中OLE DB参数的优先级顺序是什么?,sql-server,ssis,parameters,etl,Sql Server,Ssis,Parameters,Etl,对于SSIS OLE DB连接管理器,我可以参数化服务器名称、初始目录和用户名 除了上面提到的,我还可以参数化连接字符串本身。或者我可以把它们全部参数化 我找不到明确的文档说明哪些设置优先 例如: 如果服务器名称和Connectionstring是参数化的,并且我在服务器参数中使用serverA,而在Connectionstring参数中使用serverB,那么优先级是什么 如果服务器名或Connectionstring中的任何一个是参数化的,并且我在其中一个中使用serverA,在另一个中使用

对于SSIS OLE DB连接管理器,我可以参数化服务器名称、初始目录和用户名

除了上面提到的,我还可以参数化连接字符串本身。或者我可以把它们全部参数化

我找不到明确的文档说明哪些设置优先

例如:

如果服务器名称和Connectionstring是参数化的,并且我在服务器参数中使用serverA,而在Connectionstring参数中使用serverB,那么优先级是什么

如果服务器名或Connectionstring中的任何一个是参数化的,并且我在其中一个中使用serverA,在另一个中使用serverB,那么优先级是什么

如果它们都没有参数化,并且在连接管理器中,假设我在一个服务器名称中使用serverA,在另一个服务器名称中使用serverB ConnectionString,那么优先级是什么


我在官方文件中没有找到任何相关内容。但是我认为这些参数是根据参数化属性名称进行优先级排序的。它们按字母顺序排列

假设SSIS引擎循环所有参数化属性,并在执行之前逐个计算属性表达式。在Visual Studio SSIS设计器中,所有表达式都基于属性的名称进行排序

第一次实验 我添加了一个OLE DB连接管理器,并参数化了ConnectionString和InitialCatalog属性。单击“连接管理器”的“属性”选项卡上,表达式按属性名称排序:

让我们尝试在Description属性上添加一个新表达式:

如上图所示,表达式添加到表达式网格的第三行中。如果关闭表达式窗体,它们将按属性名称排序,描述表达式将移动到第二行:

这意味着属性名称会对它们进行排序

第二次实验 我参数化了OLE DB连接管理器的两个属性:

ConnectionString:数据源=。\Data;初始目录=tempdb;Provider=SQLNCLI11.1;综合安全=SSPI;自动翻译=假; 初始目录:master 我使用以下命令添加了执行SQL任务:

选择前1个表格目录 来自信息\u SCHEMA.TABLES 我将任务配置为将结果集存储在名为User::database的变量中

然后,我在onPostExecute事件上添加了一个断点,然后使用快速监视可视化User:database变量。如下图所示,该值为master

这意味着OLE DB连接管理器中的初始目录属性是为初始目录属性传递的,而不是为连接字符串传递的

结论
我认为在计算SSI中的所有表达式时没有实现任何逻辑。SSIS引擎根据任务属性的名称对表达式进行循环。

我在官方文档中没有找到任何相关内容。但是我认为这些参数是根据参数化属性名称进行优先级排序的。它们按字母顺序排列

假设SSIS引擎循环所有参数化属性,并在执行之前逐个计算属性表达式。在Visual Studio SSIS设计器中,所有表达式都基于属性的名称进行排序

第一次实验 我添加了一个OLE DB连接管理器,并参数化了ConnectionString和InitialCatalog属性。单击“连接管理器”的“属性”选项卡上,表达式按属性名称排序:

让我们尝试在Description属性上添加一个新表达式:

如上图所示,表达式添加到表达式网格的第三行中。如果关闭表达式窗体,它们将按属性名称排序,描述表达式将移动到第二行:

这意味着属性名称会对它们进行排序

第二次实验 我参数化了OLE DB连接管理器的两个属性:

ConnectionString:数据源=。\Data;初始目录=tempdb;Provider=SQLNCLI11.1;综合安全=SSPI;自动翻译=假; 初始目录:master 我使用以下命令添加了执行SQL任务:

选择前1个表格目录 来自信息\u SCHEMA.TABLES 我将任务配置为将结果集存储在名为User::database的变量中

然后,我在onPostExecute事件上添加了一个断点,然后使用快速监视可视化User:database变量。如下图所示,该值为master

这意味着OLE DB连接管理器中的初始目录属性是为初始目录属性传递的,而不是为连接字符串传递的

结论
我认为在计算SSI中的所有表达式时没有实现任何逻辑。SSIS引擎根据任务属性的名称在表达式上循环。

此外,它似乎将连接字符串视为优先于服务器名称
@变量100%,这也意味着它们按字母顺序排序。我希望这个答案是有道理的。祝你好运!此外,它看起来像是将连接字符串作为服务器的优先级name@variable100%,这也意味着它们是按字母顺序排序的。我希望这个答案是有道理的。祝你好运!