批量将图像插入SQL Server数据库

时间:2017-07-28 15:20:03

标签: sql sql-server bulkinsert

我想以这种方式插入图片:

DECLARE @lpath varchar(100)
SET @lpath = 'd:\Photo\5604.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:\Photo\5604.jpg', Single_blob) AS i

效果很好。

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

1 个答案:

答案 0 :(得分:0)

您无法在OpenRowSet中使用变量,请尝试使用动态SQL,如下所示:

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

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

EXEC(@sql)