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
Xml 如何在不应用可执行代码或执行包文件的情况下修改.dtsx文件中的变量值_Xml_Ssis - Fatal编程技术网

Xml 如何在不应用可执行代码或执行包文件的情况下修改.dtsx文件中的变量值

Xml 如何在不应用可执行代码或执行包文件的情况下修改.dtsx文件中的变量值,xml,ssis,Xml,Ssis,有没有一种简单的方法可以修改SSIS.dtsx包文件XML格式中定义的变量的值,而无需使用msxsl.exe之类的可执行文件或自定义等效文件?在使用dtutil将文件复制到Integration Services的MSDB之前,需要更新该文件。我知道我可以使用dtexec更新变量,但这会运行包文件,我现在不想这样做 我有一个在Visual Studio 2010中创建的.dtsx包文件,需要部署到本地运行SQL server 2012的客户机服务器上。我不知道他们服务器的名称,这些信息在到达时必

有没有一种简单的方法可以修改SSIS.dtsx包文件XML格式中定义的变量的值,而无需使用msxsl.exe之类的可执行文件或自定义等效文件?在使用dtutil将文件复制到Integration Services的MSDB之前,需要更新该文件。我知道我可以使用dtexec更新变量,但这会运行包文件,我现在不想这样做

我有一个在Visual Studio 2010中创建的.dtsx包文件,需要部署到本地运行SQL server 2012的客户机服务器上。我不知道他们服务器的名称,这些信息在到达时必须更新为.dtsx包文件中的一个变量,并由现场人员进行更新。我没有访问客户端服务器的权限,它们不允许我向它们发送可执行文件。需要更新的变量可以是服务器名称,不一定是安装包的服务器,否则将使用System::MachineName变量、数据库名称或站点特有的其他名称。我的计划是使用在命令提示符下运行的批处理文件来执行更新,并提示用户提供参数值,然后将这些值传递到.dtsx文件。我无法使用PowerShell,因为这因客户端而异。运行批处理脚本(更新.dtsx文件并将更新复制到Integration Services)后,将删除.dtsx文件和所有临时脚本

例如,我正在SSIS包中应用错误处理,并希望使用名为EmailAlert的用户变量中定义的电子邮件地址发送电子邮件警报。接收警报的人员将因客户端站点的不同而有所不同。在.dtsx文件的XML中,变量如下所示,其中myemail@xxxx.com价值需要被替换

<DTS:Variable
  DTS:CreationName=""
  DTS:DTSID="{F988AD8E-CCE3-4CC1-A447-2F7D3184577B}"
  DTS:IncludeInDebugDump="6789"
  DTS:Namespace="User"
  DTS:ObjectName="AlertEmail">
  <DTS:VariableValue
    DTS:DataType="8">myemail@xxxx.com</DTS:VariableValue>
</DTS:Variable>
我希望有类似于dtutil或dtexec的东西,可以识别.dtsx文件中特定变量的特定XML子节点,并更新、保存该文件,以便可以轻松地将其复制到带有dtutil的Integration Services。否则,使用批处理文件中的自定义代码进行编辑可能是对应用上述示例的每个变量的三行块执行更新的唯一选项

  DTS:ObjectName="AlertEmail">
  <DTS:VariableValue
    DTS:DataType="8">myemail@xxxx.com</DTS:VariableValue>

谢谢

您能在这里更改包裹吗?如果是这样的话,你应该仔细阅读,这是专为这种情况设计的。本质上,它们允许您将变量从包中分离出来,每次包运行时,它都会输出到表、xml文件等中,并从中填充值。如果您询问如何以编程方式编辑包,您是否研究过BiML?我从未使用过它,但我听说过它的优点。谢谢你的两个建议,我正在测试它们以及第三个选项,看看哪一个对客户的影响最小。如果我同意AHiggins的建议,它可能需要应用一个XML文件来包含配置。抱歉耽搁了,再次感谢。