在列中添加引号

时间:2015-11-06 09:37:36

标签: sql-server excel bcp

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

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

中介修复:通过在创建字段名时添加QuoteName,可以添加" ["和"]"到文本,所以它导出为" [1-7]"哪个有效,但我宁愿没有" []"部分,并希望有=" columnvalue"代替。

有没有办法做到这一点,我试图避免在BCP的选择中添加列名,以便在报告不断变化时保持动态,我建立它以允许客户创建自己的报告。

代码:

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

0 个答案:

没有答案