从SQLCMD生成csv文件时遇到问题。我有一个看起来像这样的测试表。
其中包含2个数字列和2个nvarchar列(一个长度为64个字符,另外两个长度为2000个字符)。
如果我发出命令select * from test
,我得到的就是这个
number1 number2 varcharacter1 varcharacter2
1 2 test longertext
2 3 test2 longertext2
3 4 test3 longertext3
如果我想将其输出为csv,我使用此sql:
select cast(number1 as nvarchar) + ',' +
varcharacter2 + ',' +
varcharacter1 + ',' +
cast(number2 as nvarchar)
from test
这给了我看起来不错的
(No column name)
1,longertext,test,2
2,longertext2,test2,3
3,longertext3,test3,4
问题是当我通过SQLCMD输入时。如果我发出以下命令
Scripts>sqlcmd -S localhost\STUDIO -d studiodb -U sa -P Studio2016! -h-1 -i test.sql -o test.csv
我得到的是一个包含数据的CSV文件,但是当我在TextPad中打开它时,最后一列被填充为2000个字符长。
1,longertext,test,2
2,longertext2,test2,3
3,longertext3,test3,4
造成这种情况的原因是什么?如何解决?我做错了什么?