从sql server数据库插入并获取图像

时间:2013-10-31 08:03:46

标签: sql sql-server image sql-server-2008

我正在尝试将图像插入到具有类型(图像)的列的表中。这是我试过的:

INSERT INTO tblDDPhotos(ID, img)
VALUES (1, SELECT * FROM
OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile)`

我想知道,

  1. 我们如何从blob插入图像。
  2. 我们如何访问和检索图像。
  3. 将图像存储在DB中以将图像保存在服务器的文件夹中有什么缺点。

1 个答案:

答案 0 :(得分:1)

您无法在VALUES声明中混用SELECTINSERT方法 - 使用另一个,但不能混用它们。

所以这样做的一种方法是使用:

DECLARE @FileContents VARBINARY(MAX)

SELECT @FileContents = BulkColumn
FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile)

INSERT INTO tblDDPhotos(ID, img)
VALUES (1, @FileContents)

或替代方法是使用:

INSERT INTO tblDDPhotos(ID, img)
   SELECT 1, BulkColumn
   FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB)

选择适合你的方法 - 两者都同样有效。

附注:ntexttextimage数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)

See details about this here