错误:明显没有遗漏任何引号的一行上的字符串'后的引号引起来

时间:2018-08-29 23:18:22

标签: sql azure-sql-database

我正在尝试将数据插入我的Azure数据库,但是我一直收到此错误:

Failed to execute query. Error: Unclosed quotation mark after the character string '
you'.
Incorrect syntax near '
you'.

我要插入到数据库中的唯一代码如下:

SET IDENTITY_INSERT [dbo].[Articles] ON 
GO
INSERT [dbo].[Articles] ([Id], [Title], [Description], [Thumbnail], [VideoLink], [Developer], [Publisher], [ReleaseDate], [PublishDate], [ReviewConsole], [Text], [Score]) VALUES (2, N'Donkey Kong 64', N'My mighty review of the Guinness World Record-setting Donkey Kong 64.', N'DK64.png', N'eXlRymN6uxM', N'Rare', N'Nintendo', N'11/22/1999', N'2/15/2016', N'N64', N'
you go ', 7)
GO

奇怪的是,如果我将“随身携带”数据放在第二行,它就可以正常工作,但是由于我要移动2500多个,所以对于每一行执行该操作都非常繁琐。是否有发生此错误的原因?如果是,有没有简单的方法来消除该错误?

2 个答案:

答案 0 :(得分:2)

问题是换行符。有趣的是,如果它的varchar而不是nvarchar可以工作。但是这个简单的示例将失败:

declare @t table (t nvarchar(100))
insert @t values (n'
you go')
select * from @t

这将起作用(请注意,它不再插入为nvarchar)

declare @t table (t nvarchar(100))
insert @t values ('
you go')
select * from @t

答案 1 :(得分:0)

回答不正确,所以我将在这里回答。您要插入的字段包含诸如“我想去”之类的文本,该文本以一种形式或另一种形式用单引号引起来。您需要逃避这些。您可以使用字符串替换功能,以便在插入数据库时​​将“我想去”变成“我想去”。在DB内部,它将以“我想去”的形式输入,即没有双引号。