使用: 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