【问题标题】:How to escape double quotes in bcp sql query in stored procedure sql server如何在存储过程 sql server 中的 bcp sql 查询中转义双引号
【发布时间】:2015-04-24 10:37:10
【问题描述】:

以下是我的存储过程代码:

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 的选择查询中。

【问题讨论】:

    标签: sql-server stored-procedures bcp


    【解决方案1】:

    您需要将双引号连接到消息结果的开头和结尾,并转义单引号和双引号:

    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'
    

    【讨论】:

      猜你喜欢
      • 2015-04-14
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      相关资源
      最近更新 更多