我正在尝试insert
一些文本数据插入SQL Server
9 中的表中。
该文本包括单引号(')。
我怎么逃避?
我尝试使用两个单引号,但它给我一些错误。
例如。 insert into my_table values('hi, my name''s tim.');
单引号通过将它们加倍来进行转义 ,就像您在示例中向我们展示的那样。以下 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
怎么样:
insert into my_table values('hi, my name'+char(39)+'s tim.')