我试图将一些文本数据插入到SQL Server 9中的表中。
文本中包含了一个引用。
我怎么逃脱呢?
我尝试使用两个单引号,但它给我带来了一些错误。
如。插入my_table值('hi, my name' s tim.');
我试图将一些文本数据插入到SQL Server 9中的表中。
文本中包含了一个引用。
我怎么逃脱呢?
我尝试使用两个单引号,但它给我带来了一些错误。
如。插入my_table值('hi, my name' s tim.');
当前回答
双倍的引用本应有效,但奇怪的是它没有对你起作用;但是,另一种方法是在字符串周围使用双引号字符,而不是单引号字符。也就是说,
插入my_table值("hi, my name's tim.");
其他回答
双倍的引用本应有效,但奇怪的是它没有对你起作用;但是,另一种方法是在字符串周围使用双引号字符,而不是单引号字符。也就是说,
插入my_table值("hi, my name's tim.");
这应该是可行的:使用反斜杠和双引号
"UPDATE my_table SET row =\"hi, my name's tim.\";
只要在要插入的任何东西之前插入一个'。它将像sqlServer中的转义字符
例子: 当你有场作为,我很好。 你可以: UPDATE my_table SET row ='I' m fine.';
通过将单引号加倍来转义,就像您在示例中展示的那样。下面的SQL说明了这个功能。我在SQL Server 2008上进行了测试:
DECLARE @my_table TABLE (
[value] VARCHAR(200)
)
INSERT INTO @my_table VALUES ('hi, my name''s tim.')
SELECT * FROM @my_table
结果
value
==================
hi, my name's tim.
如果用另一个单引号转义单引号对您不起作用(就像我最近的一个REPLACE()查询一样),您可以在查询之前使用SET QUOTED_IDENTIFIER OFF,然后在查询之后使用SET QUOTED_IDENTIFIER ON。
例如
SET QUOTED_IDENTIFIER OFF;
UPDATE TABLE SET NAME = REPLACE(NAME, "'S", "S");
SET QUOTED_IDENTIFIER ON;
-- set OFF then ON again