Ssis 以编程方式设置SQL目标表

Ssis 以编程方式设置SQL目标表,ssis,Ssis,我有一个SSIS 2005包,需要从XML文件中读取,解析为列,然后加载到SQL表中。我的解析工作正常。我的问题是直到运行时我才知道表名。这些表名为transaction_x,其中x保存在包级别变量中。是否有任何方法可以通过编程方式设置目标表名 谢谢 罗布 您是否尝试过使用SQL命令组件?我从来没有这样做过,但我认为(理论上)可以将这个名称存储在一个变量中,然后在免费的T-SQL组件中使用这个变量创建一个表。我认为值得一试 您是否尝试过使用SQL命令组件?我从来没有这样做过,但我认为(理论上)可

我有一个SSIS 2005包,需要从XML文件中读取,解析为列,然后加载到SQL表中。我的解析工作正常。我的问题是直到运行时我才知道表名。这些表名为transaction_x,其中x保存在包级别变量中。是否有任何方法可以通过编程方式设置目标表名

谢谢


罗布

您是否尝试过使用SQL命令组件?我从来没有这样做过,但我认为(理论上)可以将这个名称存储在一个变量中,然后在免费的T-SQL组件中使用这个变量创建一个表。我认为值得一试

您是否尝试过使用SQL命令组件?我从来没有这样做过,但我认为(理论上)可以将这个名称存储在一个变量中,然后在免费的T-SQL组件中使用这个变量创建一个表。我认为值得一试

正如AjAdams所提到的,您可能希望将表名存储在变量中。打开ole db目标的gui时,可以单击数据访问模式下拉列表并选择“表名或视图名变量”。然后从变量名下拉列表中选择包含表名的变量名。这应该可以解决您的问题。

正如AjAdams所提到的,您希望将表名存储在一个变量中。打开ole db目标的gui时,可以单击数据访问模式下拉列表并选择“表名或视图名变量”。然后从变量名下拉列表中选择包含表名的变量名。这应该可以解决您的问题。

除了rfonn的答案之外,您还可以通过删除Foreach容器并将其设置为Foreach NodeList枚举器来迭代表名

当然,如果您的姓名以允许您以这种方式进行迭代的方式存储在XML中,则会出现这种情况


虽然在这种情况下没有用处,但属性表达式也是动态设置值的好方法

除了rfonn的答案之外,还可以通过删除Foreach容器并将其设置为Foreach节点列表枚举器来迭代表名

当然,如果您的姓名以允许您以这种方式进行迭代的方式存储在XML中,则会出现这种情况


虽然在这种情况下没有用处,但属性表达式也是动态设置值的好方法

我不知道SSIS,但是如果它使用SQL Server,那么您可以使用存储过程,在存储过程中,您可以定义一个变量来存储表名,然后按照您需要的方式进行更改。我不知道SSIS,但是如果它使用SQL Server,那么您可以使用存储过程,您可以在其中定义一个变量来存储表名,然后根据需要对其进行更改。太好了,谢谢。奇怪的是,SQL Server目标工具没有此功能-不管怎样,我将使用OLEDB工具。太好了,谢谢。奇怪的是,SQL Server目标工具无法使用此功能-不管怎样,我将使用OLEDB工具。