Insérer "Golf" échoue dans SQL Server avec une citation d'erreur non fermée

Table très simple et instruction d'insertion, échoue si la string est 'Golf', mais fonctionne pour toute autre string. Table créer:

CREATE TABLE [dbo].[market] ( [marketID] [int] NOT NULL, [name] [varchar](50) NULL, CONSTRAINT [PK_market] PRIMARY KEY CLUSTERED ([marketID] ASC) ) 

Insérer:

 INSERT [dbo].[market] ([marketID], [name]) VALUES (4, N'Golf') Error: Unclosed quotation mark after the character ssortingng ''. (State:37000, Native Code: 69) Error: Incorrect syntax near ''. (State:37000, Native Code: 66) Error: Unclosed quotation mark after the character ssortingng ')'. 

Maintenant, si je change l'insertion à:

 INSERT [dbo].[market] ([marketID], [name]) VALUES (4, N'Test') 

Cela fonctionne très bien. Est-ce que quelqu'un a déjà vu ça auparavant?

Je pense que l'application que vous utilisez doit être cassée et se divise en lots si un GO est trouvé n'importe où dans la string.

Par exemple, il utilise une approche naïve comme ci-dessous.

 Regex.Split(sqlSsortingng, "GO", RegexOptions.IgnoreCase); 

Puis exécute les résultats en tant que lots séparés.

Fonctionnement

 INSERT [dbo].[market] ([marketID], [name]) VALUES (4, N' 

Renvoie les deux premières erreurs signalées.

Msg 105, niveau 15, état 1, ligne 1 Guillemets non fermés après la string de caractères ''.

Msg 102, niveau 15, état 1, ligne 1 Syntaxe incorrecte près de ''.

Exécuter

 lf') 

Renvoie le troisième.

Msg 105, niveau 15, état 1, ligne 1 Guillemets non fermés après la string de caractères ')'.

Une solution de contournement temporaire pourrait être d'essayer

 INSERT [dbo].[market] ([marketID], [name]) VALUES (4, N'G' + 'olf') 

Mais bien sûr, l'application doit vraiment être réparée.