3

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.

3 Answers 3

7

'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.

Sign up to request clarification or add additional context in comments.

Comments

1

You can also you the ESCAPE clause. This allows you to define your own escape character.

Comments

0

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.

1 Comment

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.