我遇到了将存储过程的结果导出到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
答案 0 :(得分:0)
Excel喜欢认为它比你知道如何更好地格式化你的数据...这是一个你可以用来超越它的技巧。打开一个新的电子表格,选择所有单元格并将类型更改为文本(从一般情况下),然后从记事本(或SSMS)复制数据,将其粘贴到Excel中,如果必须,则使用文本到列... Excel应该停止那么弄乱你的格式。
您也可以使用Excel中的导入数据执行相同的操作,但我发现第一个更有效,您也可以使用它直接从SSMS网格结果进行复制和粘贴。