给列添加引号

使用: BCP – 存储过程 – SQL Server 2012 Management Studio

问题:由BCP创build的CSV文件不会添加引号,因此1-7会在Excel中变为7月1日。

中介修复:通过在创build字段名称时添加QuoteName ,可以将“[”和“]”添加到文本中,因此可以导出为“[1-7]”,但是我不希望将“[] “部分,而宁愿有=”columnvalue“而不是。

有没有办法做到这一点,我试图避免添加列名到BCP的select保持dynamic,因为报告是不断变化,我是build立起来,让客户端创build自己的报告。

码:

 USE [DATABASE] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[spPropertyListBCP] ( @tableName sysname ) AS BEGIN DECLARE @sql NVARCHAR(MAX) SET @sql = 'SELECT p.UPRN AS pUPRN QUOTENAME(p.BuildingNo) As BuildingNo, p.Street INTO ' + QUOTENAME(@tableName) + ' FROM TblProperty As p LEFT JOIN TblOne As a ON p.UPRN = a.UPRN GROUP BY p.UPRN, p.BuildingNo, p.Street' EXEC (@sql) declare @sql1 varchar(8000) select @sql1 = 'bcp DATABASE.dbo.' + @tableName + ' out C:\Sites\Reports\'+ @tableName + '.csv -c -t, -T -S '+ @@servername exec master..xp_cmdshell @sql1 END 

– http://www.excel-sql-server.com/sql-server-export-to-excel-using-bcp-sqlcmd-csv.htm