2010-07-25 75 views
3

请原谅我,因为我是一位sql noob。我试图做一个插入使用以下,但我有一个撇号问题。我有很多记录要插入,但很多都有相同的问题。 有逃脱他们的方法吗?SQL中的转义字符

INSERT INTO [dbo].[tb_Chefs] ([ChefHotelID], [HotelID], [ChefID], 
    [Position], [GroupID]) 
VALUES(N'b809a86e-f7f2-45b2-a240-0049f51509d7' ,N'14481', N'624', 
    N'Chef d'atelier', N'331') 
GO 

任何帮助非常感谢。

回答

7

'Chef d'atelier'变得'Chef d''atelier'

Just double them up

如果括在 单引号的字符串包含一个嵌入式 引号,表示与 两个单引号的 嵌入式单引号。

0

使用这样的事情,而不是

INSERT INTO [dbo].[tb_Chefs] ([ChefHotelID], [HotelID], [ChefID], [Position], [GroupID])
VALUES("N'b809a86e-f7f2-45b2-a240-0049f51509d7'" ,"N'14481'", "N'624'", "N'Chef d'atelier', N'331'")

,或者你可以存储你想在一个变量先插入,然后在SQL语句,而不是原始值使用变量的值。

+1

这取决于SET QUOTED_IDENTIFIER OFF,这不是默认设置,如果设置会导致其他问题(索引视图,计算列等)http://msdn.microsoft.com/zh-cn/library/ms174393.aspx – gbn 2010-07-25 15:27:50

1

你也可以是ESCAPE子句。这使您可以定义自己的转义字符。