这似乎是一个问题,之前已经回答了一百万次,但是只搜索一下只会用双引号替换单引号。
问题是我有一个包含大量单引号的文件。有没有办法按原样插入字符串,没有单引号抛出错误。任何包装?
这适用于纯SQL,我不需要从后端或任何东西保存此字符串。我需要一个SQL命令。
编辑:只是为了澄清 - 我试图发布的字符串是一个html格式的文档,包含大量的双引号和单引号,单独转义每个引用将花费足够的时间来保证以另一种格式保存数据,我宁愿不这样做。
答案 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)="";