0

我有定义表:

在此处输入图像描述

我有接近 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) 字节的数据。我该如何解决?

4

2 回答 2

2

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

于 2017-04-04T11:53:26.600 回答
0

尝试将图像文件作为 blob 插入 SQL Server 数据库时,我遇到了类似的错误,它会抛出“RIGHT TRUNCATION”错误。

我通过将 blob 列数据类型从更改VARBINARY(MAX)IMAGE. 该varbinary(max)数据类型应该替换image较新的 SQL Server 实例中的数据类型,我的实例是 SQL Server 2012。如果使用该Image数据类型适合您,请记住该类型的最大大小为 2 GB。

于 2020-01-14T17:50:09.590 回答