sqlcmd:协调-W和-Y

时间:2011-05-24 15:42:39

标签: sql-server batch-file sqlcmd

我有一个自动批处理过程,它使用sqlcmd从数据库中提取数据并将其转储到文本文件中。该数据库中的许多字段都是varchar(max)类型,Sqlcmd将这些字段限制为256个字符,除非我向sqlcmd调用中的标志添加-y 0之类的内容。

这为我提供了大于256个字符的字段的全文,但它也增加了大量的空白;这些字段被填充以使每个字段根据其数据类型尽可能大,从而给我带来大量填充和浪费空间的巨大文件。

我可以通过在我的sqlcmd标记中添加-W来解决此问题,但这会让我错误地说-W-y不兼容。

以前有人有这个问题吗?关于如何解决它的想法?

2 个答案:

答案 0 :(得分:0)

this thread开始,建议使用-s指定列分隔符可以修剪数据,就像未指定数据固定宽度一样。

如果这不起作用,您是否在RTRIM(LTRIM(ColumnName))查询中尝试了SELECT

答案 1 :(得分:-1)

我在使用SQLCMD创建CSV文件时遇到了这个问题,并通过欺骗SQLCMD解决了这个问题。我没有返回多个字段而是让SQLCMD将逗号作为分隔符,而只是连接所有字段,将逗号自己放入其中。我知道这是一个丑陋的解决方法,但这解决了我的问题。希望它可以帮助别人。