SQL Server将存储过程结果导出为保留char(9)格式的CSV文件

时间:2013-02-01 21:52:55

标签: sql sql-server tsql stored-procedures

我遇到了将存储过程的结果导出到csv文件并将结果保存为9个字符的问题。存储过程的结果是一个简单的一列输出,在SSMS中执行时看起来很好,但是在没有零的情况下返回具有前导零的csv中的返回值。表列是类型varchar(13),我已经完成了转换以尝试保持前导零被丢弃但没有运气。

这是存储过程:

SELECT DISTINCT
convert(char(8),n.NIIN)
FROM IMMS_ELEC.dbo.NIINList n

以下是我正在使用的简单BCP脚本:

DECLARE @string AS NVARCHAR(4000)
SELECT    @string = 'BCP "exec CPLINK_Dev.dbo.spSelectLOG_NiinDistinct"
QUERYOUT:\data.csv -c -T -t'
exec master.dbo.xp_cmdshell @string

1 个答案:

答案 0 :(得分:0)

Excel喜欢认为它比你知道如何更好地格式化你的数据...这是一个你可以用来超越它的技巧。打开一个新的电子表格,选择所有单元格并将类型更改为文本(从一般情况下),然后从记事本(或SSMS)复制数据,将其粘贴到Excel中,如果必须,则使用文本到列... Excel应该停止那么弄乱你的格式。

您也可以使用Excel中的导入数据执行相同的操作,但我发现第一个更有效,您也可以使用它直接从SSMS网格结果进行复制和粘贴。