views:

31

answers:

2

Hi, Please forgive me as I am a bit of an sql noob. I am trying to do an insert using the following but am having a problem with the apostrophes. I have a lots of records to insert but many have the same problem. Is there a way of escaping them?

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

Any help much appreciated.

+5  A: 

'Chef d'atelier' becomes 'Chef d''atelier'

Just double them up

If a character string enclosed in single quotation marks contains an embedded quotation mark, represent the embedded single quotation mark with two single quotation marks.

gbn
A: 

Use something like this instead

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'")

OR you could store the values you want to insert in a variable first and then use the variable in the SQL statement instead of the raw value.

yankitwizzy
This depends on SET QUOTED_IDENTIFIER OFF, which is not the default and can cause other problems if set (indexed views, computed columns etc) http://msdn.microsoft.com/en-us/library/ms174393.aspx
gbn