你不能在你的INSERT
声明混合VALUES
和SELECT
方法 - 使用一个或其他的,但你不能将它们混合。
所以一个做到这一点的方法是使用:
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)
。
See details about this here
谢谢。但如果图像在不同的实例中,这将无法正常工作?有没有办法呢? –
@NevilleNazerane:你的意思是不同的实例*? –