2017-04-04 33 views
0

我有表的定义:插入到varbinary中的错误(max)字符串或二进制数据将被截断。该语句已终止

enter image description here

我有近80KB图像文件。当我试图插入数据表Usluga这样的:

INSERT [dbo].[Usluga] (Nazvanie, Cena_za_poseshenie, Image) 
SELECT N'Персональный тренинг', 50, ThumbnailPhoto.* 
FROM OPENROWSET 
    (BULK 'MyFilePathToImage.jpg', SINGLE_BLOB) ThumbnailPhoto 
go 
INSERT [dbo].[Usluga] (Nazvanie, Cena_za_poseshenie, Image) 
SELECT N'Бокс', 90, ThumbnailPhoto.* 
FROM OPENROWSET 
    (BULK 'MyFilePathToImage.jpg', SINGLE_BLOB) ThumbnailPhoto 
go 

我给错误

字符串或二进制数据将被截断。 该声明已被终止。

但varbinary(max)允许从0到2^31-1(2,147,483,647)个字节保存数据。 我该如何解决这个问题?

+1

这段确切的代码是否失败?字符串或二进制数据截断令人讨厌地模糊了哪个项目实际上将被截断,所以我猜测它更可能是您尝试将超过20个字符的字符串插入到'Nazvanie'中。 – GarethD

+0

是的,你是对的。我很蠢!谢谢。 – amofialka

回答

1

也许你正在看错误的列。尝试调整您的nvarchar(20)列的大小,以便它可以接受超过20个字符。

相关问题