在SSIS导出中自动转义引号

时间:2017-12-20 16:30:59

标签: sql-server csv ssis etl

我正在使用带有SSIS的SQL Server 2014

我有这样的数据集:

ID   Name              Status
1    Awesome "Store"   Active
2    Market, Place     Active
3    Vendor            Active

在SSMS中,当结果在网格中并且我右键单击并选择将结果保存为CSV时,原始输出为:

ID,Name,Status
1,"Awesome ""Store""",Active
2,"Market, Place",Active
3,Vendor,Active

我需要使用SSIS将数据从数据库导出到CSV文件,以便原始输出与上面完全相同。我不想做任何派生列来替换字符串或任何可能是我需要为新数据集执行此操作的自定义解决方案。

我尝试使用平面文件目标并将文本限定符设置为",但它会在每个值周围添加引号(不是很大的优惠)但它不会逃避{{1中的现有引号}} Awesome "Store"这是我面临的主要问题。

有没有人有解决方案可以实现我想要的?谢谢!

1 个答案:

答案 0 :(得分:1)

编辑TextQualified属性

在平面文件连接管理器中尝试一件事,将文本限定符设置为"并转到“高级”选项卡,对于第一列和最后一列,将TextQualified属性更改为{{1 }}。 Read more

enter image description here

如果这不起作用,我认为没有直接的方法来实现这一点,没有派生列或其他转换。因此,您可以做的最佳解决方法是将目标平面文件中的列分隔符更改为Tab(或任何不同于逗号False的内容)