以下内容在我们的SQL 2008 R2环境中执行,并且一切正常。供应商在SQL Server 2012上执行并设置格式更改。
例如一个简单的选择
Select '1',cast(RIGHT(replace(convert(varchar,[EMPL_EARNINGS].[PAY_PD_END_DT],112),'-',''),6) as CHAR(6))
我不能使用-W
,因为某些字段用空格填充。
我用相同的语句选择了3个不同的日期字段。
一个正确的6个字符宽,另一个为8个字符,另一个为9个字符。
批处理文件调用为sqlcmd -S ServerName -i "c:\query\myquery.sql" -o "v:\Temp\myouput.dat" -h -1 -s"" -d"DBname"
。
答案 0 :(得分:0)
发现即使我使用-h-1,列宽也与列名的宽度匹配。不确定为什么它可以在我们的版本上运行,但不能在供应商上运行。
快速解决方案是将所有列名称缩短为<=所需的列宽。
有兴趣发现REAL修复程序吗?