2017-07-28 94 views
1

我想以這種方式來插入圖片:批量插入圖片到SQL Server數據庫

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 

它效果很好。

如何以第一種方式執行腳本?

回答

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) 
+0

TNX。 我解決了使用dSQL的問題,但希望有另一種方式。 – Serge