将 SQL SSIS 作业的服务器名称传递给包变量
Passing SQL Server Name of SSIS Job to package variable
我正在尝试找出一种方法,我可以将 SQL SSIS 作业的服务器名称 运行 传递给包中的变量。
基本上,此作业 运行 在哪个服务器上,将被传递到包中 Ole DB 连接中的 ServerName 属性,以便将数据加载到该服务器中。
一直在看包配置的文档,感觉应该是在环境变量部分。但是,我认为列出的任何 "environment variables" 都不是服务器名称。我用 Google 搜索了这个问题,并在 Whosebug 上搜索了问题,但我似乎找不到这个问题。
可能有几种不同的方法,但我认为您可以通过简单的执行 SQL 任务来完成。
创建一个新的执行SQL任务
在常规 -> SQL 语句下,在 "SQLStatement" 字段中输入您的查询 Select @@SERVERNAME as ServerName
在常规 -> 结果集下,选择 "Single row"
在Parameter Mapping下,在Variable Name中输入你的变量(如果没有就创建一个)User::ServerName,"Input"作为direction,0作为Parameter Name,和 -1 作为参数大小
在“结果集”下,输入“结果名称”"ServerName",然后在“变量名称”中键入变量
点击确定
试一试,看看它是否能满足您的需求。
我能够通过使用脚本任务和 C# 代码来获取机器名称或机器的 IP 地址来完成此操作运行。
Dts.Variables["User::ServerName"].值=System.Net.Dns.GetHostName();
我正在尝试找出一种方法,我可以将 SQL SSIS 作业的服务器名称 运行 传递给包中的变量。
基本上,此作业 运行 在哪个服务器上,将被传递到包中 Ole DB 连接中的 ServerName 属性,以便将数据加载到该服务器中。
一直在看包配置的文档,感觉应该是在环境变量部分。但是,我认为列出的任何 "environment variables" 都不是服务器名称。我用 Google 搜索了这个问题,并在 Whosebug 上搜索了问题,但我似乎找不到这个问题。
可能有几种不同的方法,但我认为您可以通过简单的执行 SQL 任务来完成。
创建一个新的执行SQL任务
在常规 -> SQL 语句下,在 "SQLStatement" 字段中输入您的查询
Select @@SERVERNAME as ServerName
在常规 -> 结果集下,选择 "Single row"
在Parameter Mapping下,在Variable Name中输入你的变量(如果没有就创建一个)User::ServerName,"Input"作为direction,0作为Parameter Name,和 -1 作为参数大小
在“结果集”下,输入“结果名称”"ServerName",然后在“变量名称”中键入变量
点击确定
试一试,看看它是否能满足您的需求。
我能够通过使用脚本任务和 C# 代码来获取机器名称或机器的 IP 地址来完成此操作运行。
Dts.Variables["User::ServerName"].值=System.Net.Dns.GetHostName();