Sql server 如何在存储过程sql server中对bcp sql查询中的双引号进行转义
以下是我的存储过程代码:Sql server 如何在存储过程sql server中对bcp sql查询中的双引号进行转义,sql-server,stored-procedures,bcp,Sql Server,Stored Procedures,Bcp,以下是我的存储过程代码: Alter PROCEDURE [dbo].[ConvertToFile] @TempFileName varchar(8000) AS BEGIN SET NOCOUNT OFF; DECLARE @bcpFileCmd varchar(8000) SET @bcpFileCmd= 'bcp "SELECT id,full_Name,message from NotesTable " queryout '+@TempFileName+'
Alter PROCEDURE [dbo].[ConvertToFile]
@TempFileName varchar(8000)
AS
BEGIN
SET NOCOUNT OFF;
DECLARE @bcpFileCmd varchar(8000)
SET @bcpFileCmd= 'bcp "SELECT id,full_Name,message from NotesTable " queryout '+@TempFileName+' -t, -c -T'
EXEC master..xp_cmdshell @bcpFileCmd
END
BCP将NotesTable中的所有数据转储到文件中。但是我需要用双引号将消息结果括起来。消息字段的数据类型为文本。我无法将其附加到BCP中的select查询中 您需要将双引号连接到消息结果的开头和结尾,并转义单引号和双引号:
SET @bcpFileCmd= 'bcp "SELECT id, full_Name, ''""'' + message + ''""'' from NotesTable " queryout '+@TempFileName+' -t, -c -T'
如果需要保留列名,还应将其别名为(如果只是输出到文件,则可能不需要):
SET @bcpFileCmd= 'bcp "SELECT id, full_Name, ''""'' + message + ''""'' ''message'' from NotesTable " queryout '+@TempFileName+' -t, -c -T'