SSIS:C#脚本任务:如何根据运行dtsx的服务器环境更改SQL连接字符串?

Joh*_*ats 4 c# ssis

我有一个脚本任务,我更改了数据库的连接字符串,但是,它缺少一个重要的信息,它是运行包本身的服务器.

有没有办法从ac#script中检索服务器的名称?

我知道在sql我可以选择@@ servername,但我需要包来检查它运行的服务器的名称(dtsx)不是sql server.

我知道这是一个奇怪的请求,但有很多选择,这里是我正在研究的那些:

+Through A Batch CMD whose results i could store in a pkg level variable
+Through a c# script
+SQL if it is possible
Run Code Online (Sandbox Code Playgroud)

任何其他人都知道的方式将不胜感激.

编辑/更新:我发现了几种方法:

C#: public string host = System.Environment.MachineName.ToString();
cmd: hostname  ...-->then store in pkg variable
Run Code Online (Sandbox Code Playgroud)

Kri*_*erg 5

虽然您可以使用.NET获取服务器名称,但传统的SSIS方式是使用预先存在的"System :: MachineName"包变量(另外,请注意您可能必须单击"显示系统变量"按钮在包变量窗口中看到它.)假设SSIS 2008和C#(2005/VB提供相同的变量):

1)将变量名称"System :: MachineName"(不带引号)添加到脚本任务编辑器ReadOnlyVariables属性

2)在脚本内部,您可以像这样访问变量:

Dts.Variables["System::MachineName"].Value.ToString()
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.克里斯蒂安