Insert to varbinary(max) 时出错 字符串或二进制数据将被截断。该语句已终止

Error in Insert to varbinary(max) String or binary data would be truncated. The statement has been terminated

我有 table 定义:

我有接近 80kb 的图像文件。当我尝试像这样将数据插入 table 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

我报错

String or binary data would be truncated. The statement has been terminated.

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

也许您看错了栏目。尝试调整 nvarchar(20) 列的大小,使其可以接受超过 20 个字符。

我在尝试将图像文件作为 blob 插入到 SQL服务器数据库,它会抛出“RIGHT TRUNCATION”错误。

我通过将 blob 列数据类型从 VARBINARY(MAX) 更改为解决了我的问题 IMAGEvarbinary(max) 数据类型应该替换较新的 SQL 服务器实例中的 image 数据类型,我的实例是 SQL Server 2012。如果使用 Image 数据类型有效对您来说,请记住此类型的最大大小为 2 GB。