如何使用引号发布SQL字符串?

时间:2015-07-15 18:24:17

标签: sql tsql

这似乎是一个问题,之前已经回答了一百万次,但是只搜索一下只会用双引号替换单引号。

问题是我有一个包含大量单引号的文件。有没有办法按原样插入字符串,没有单引号抛出错误。任何包装?

这适用于纯SQL,我不需要从后端或任何东西保存此字符串。我需要一个SQL命令。

编辑:只是为了澄清 - 我试图发布的字符串是一个html格式的文档,包含大量的双引号和单引号,单独转义每个引用将花费足够的时间来保证以另一种格式保存数据,我宁愿不这样做。

4 个答案:

答案 0 :(得分:4)

如果SQL Server可以访问文件,则可以使用OPENROWSET将内容读入变量。例如,要在C:\drop\demo.html处读取Unicode文本文件:

DECLARE @DocumentText nvarchar(MAX);

SELECT @DocumentText = BulkColumn
FROM OPENROWSET(BULK 'C:\drop\demo.html', SINGLE_NCLOB) file;

INSERT INTO Files (Column) VALUES (@DocumentText);

答案 1 :(得分:2)

你能用两个单引号替换单引号吗?这就是SQL Server如何转义字符串中的单引号。

declare @test_string nvarchar(max) = 'string with a single '' quote in it';
print @test_string

string with a single ' quote in it

答案 2 :(得分:1)

您需要使用双引号:

select 'it''s a double quote'

将返回:

it's a double quote

答案 3 :(得分:-1)

读取文件,解析它,然后执行

    if(string.charAt(I))=="'"... charAt(I)="";