将图像批量插入 SQL 服务器数据库

Bulk insert images into SQL Server database

我想这样插入图片:

DECLARE @lpath varchar(100)
SET @lpath = 'd:\Photo04.jpg'

--insert into Photos(id, Photo, Path)
SELECT 
    4144, *, @lpath
FROM 
    OpenRowSet(BULK @lpath, Single_blob) AS i

但它不起作用

如果我这样执行代码:

SELECT 
    1, *, @lpath
FROM 
    OpenRowSet(BULK N'd:\Photo04.jpg', Single_blob) AS i

效果很好。

如何像第一种方式一样执行脚本?

您不能在 OpenRowSet 中使用变量,尝试像这样使用动态 SQL:

DECLARE @lpath NVARCHAR(100) 
SET @lpath = 'd:\Photo04.jpg'
DECLARE @sql NVARCHAR(MAX)

SET @sql='SELECT 4144, *, ''' + @lpath + '''
          FROM OpenRowSet(BULK ''' + @lpath + ''', Single_blob) AS i'

EXEC(@sql)