错误:在明显没有丢失任何引号的行上的字符串后面的未闭合引号

问题描述 投票:1回答:2

我正在尝试将数据插入我的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的移动,所以对于每一行执行都会非常繁琐。有这个错误的原因,如果是这样,有没有一个简单的方法来摆脱它?

sql azure-sql-database
2个回答
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

0
投票

没有正确回答所以我会在这里回答。您正在插入包含文本的字段,例如“我想要去”,这是一种形式的单引号。你需要逃避这些。您可以使用字符串替换功能,因此当您插入数据库时​​,“我想去”将成为“我想去”。在DB内部,它将以“我想去”的方式进入,即没有双引号。

© www.soinside.com 2019 - 2024. All rights reserved.