我正在尝试将图像插入到具有类型(图像)的列的表中。这是我试过的:
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)`
我想知道,
答案 0 :(得分:1)
您无法在VALUES
声明中混用SELECT
和INSERT
方法 - 使用另一个或,但不能混用它们。
所以这样做的一种方法是使用:
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)
选择适合你的方法 - 两者都同样有效。
附注:ntext
,text
和image
数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)
,varchar(max)
和varbinary(max)
。