Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在存储过程sql server中对bcp sql查询中的双引号进行转义_Sql Server_Stored Procedures_Bcp - Fatal编程技术网

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'