Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问';全球';ExecuteSQL任务中的变量_Sql_Ssis_Global Variables - Fatal编程技术网

访问';全球';ExecuteSQL任务中的变量

访问';全球';ExecuteSQL任务中的变量,sql,ssis,global-variables,Sql,Ssis,Global Variables,我有一个SSIS包,它执行以下操作: 从服务器表中选择连接字符串。连接字符串要么是服务器名称和域(即Dalin.myhouse.com),要么是服务器的直接IP 包迭代每个连接字符串并填充定义的“全局”变量。此变量是在变量设计器中使用创建的。对于每个连接字符串,包将检索有关服务器的信息 我遇到的问题是,当您将服务器IP添加到列表中时,“友好名称”当时可能不知道,因此我将只在表的连接字符串列和友好名称列中包含服务器IP。我想在迭代结束后,更新该表中服务器项的友好名称列,以便使用SERVERPROP

我有一个SSIS包,它执行以下操作: 从服务器表中选择连接字符串。连接字符串要么是服务器名称和域(即Dalin.myhouse.com),要么是服务器的直接IP

包迭代每个连接字符串并填充定义的“全局”变量。此变量是在变量设计器中使用创建的。对于每个连接字符串,包将检索有关服务器的信息

我遇到的问题是,当您将服务器IP添加到列表中时,“友好名称”当时可能不知道,因此我将只在表的连接字符串列和友好名称列中包含服务器IP。我想在迭代结束后,更新该表中服务器项的友好名称列,以便使用SERVERPROPERTY('Servername')从服务器中提取服务器名称

为此,我希望使用带有以下代码的ExecuteSQL任务:

UPDATE [myDB].[mySchema].[myServers]
SET [ServerName] = VarA
WHERE ConnectionString = VarB
前面的代码使用到myServers表所在服务器的静态连接

VarA表示我希望通过使用SERVERPROPERTY('ServerName')在单独的SQLTask中设置的ServerName的全局值。它需要在一个单独的任务中,因为它必须使用当前迭代使用的同一台服务器连接到服务器

VarB在每次迭代开始时设置为列表中的下一个连接字符串

我已经看到了如何将其用于脚本任务和脚本组件的示例,但我只想使用ExecuteSQL任务来完成这一点

总结:
连接到ServerA并填充两个全局变量。
连接到ServerB并使用这两个全局变量更新表中的特定行。


有什么想法吗?

如果不在脚本任务中设置变量,我看不出如何实现这一点,因为ExecuteSQL任务必须设置为数据库连接。脚本任务可以实现这一点,因为它们的连接在执行它们的服务器的上下文中。也就是说,您可以在此ExecuteSQL任务之前使用一个脚本任务,将变量设置为本地服务器实例。

如果不在脚本任务中设置变量,我看不出如何实现这一点,因为ExecuteSQL任务必须设置为数据库连接。脚本任务可以实现这一点,因为它们的连接在执行它们的服务器的上下文中。也就是说,您可以在这个ExecuteSQL任务之前使用一个脚本任务来设置本地服务器实例的变量。

那么您需要执行SQL任务来获取参数吗


也许我误解了…

所以您需要执行SQL任务来获取参数

也许我误解了