在SQL Server 2005中导入图像

时间:2010-10-13 16:03:08

标签: sql-server sql-server-2005

亲爱的所有人,我有另一个问题。我在SQL表Employees中。这张表有很多细节,但我缺少图像或照片。

所以我设法为所有员工拍摄所有照片,但我在照片夹中有照片。每张图片的名称都与Employee_id相同,后者与表中的记录相匹配。如何将图像导入SQL Employee表以使图片名称与Employee_id匹配。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

游标和一些动态SQL应该可以解决问题。

declare EmployeeCursor cursor fast_forward for
    select Employee_id
        from Employee

declare @sql nvarchar(4000)
declare @Employee_id int

open EmployeeCursor      

while (1=1) begin
    fetch next from EmployeeCursor into @Employee_id

    if @@FETCH_STATUS<>0 break

    set @sql = N'UPDATE Employee
                     SET ImageColumn = 
                         (SELECT * FROM 
                              OPENROWSET(BULK N''c:\images\' + cast(@Employee_id as nvarchar(10)) + N'.jpg'', SINGLE_BLOB) AS img)
                              WHERE Employee_id = ' + cast(@Employee_id as nvarchar(10))

    exec(@sql)   
end /* while */

close EmployeeCursor
deallocate EmployeeCursor

答案 1 :(得分:1)

您可以使用OPENROWSET BULK打开外部文件作为INSERTUPDATE的值。

以下是一个例子:

UPDATE Employees SET Picture=(SELECT * FROM OPENROWSET(BULK 'c:\temp\1234.jpg', SINGLE_BLOB) as Picture) WHERE Employee_id=1234