仅使用SQL将图片插入SQL Server 2005图像字段


73

使用SQL Server 2005和Management Studio,如何将图片插入Image表的类型列中?

最重要的是,我如何验证它是否在那里?

Answers:


95
CREATE TABLE Employees
(
    Id int,
    Name varchar(50) not null,
    Photo varbinary(max) not null
)


INSERT INTO Employees (Id, Name, Photo) 
SELECT 10, 'John', BulkColumn 
FROM Openrowset( Bulk 'C:\photo.bmp', Single_Blob) as EmployeePicture

23
重要的是要注意,列出的路径是在SQL Server(而不是查询机)上寻找的。因此,如果您的SQL Server不是您的开发计算机,则必须从SQL Server计算机获得可引用的映像。
瓦卡诺

我有相同的数据存储在MSSQL中并导出到MySQL吗?用PHP显示哪些步骤?
tapaljor

41

要更新记录:

 UPDATE Employees SET [Photo] = (SELECT
 MyImage.* from Openrowset(Bulk
 'C:\photo.bmp', Single_Blob) MyImage)
 where Id = 10

笔记:

  • 确保为您使用的登录名添加“ BULKADMIN”角色权限。
  • 使用SQL Server Management Studio时,路径未指向您的计算机。如果您在本地计算机上启动SSMS并连接到服务器X上的SQL Server实例,则文件C:\ photo.bmp将指向服务器X上的硬盘驱动器C :,而不是您的计算机!

如果我的图像存储在本地并且要插入到远程数据库中,该如何处理?
Joze

2
使用网络共享:UPDATE Employees SET [照片] =(从Openrowset(批量'\\您的机器名称\ Shared Folder \ photo.bmp',Single_Blob)MyImage中选择SELECT MyImage。*),其中Id = 10
mathijsuitmegen

0

创建表:

Create Table EmployeeProfile ( 
    EmpId int, 
    EmpName varchar(50) not null, 
    EmpPhoto varbinary(max) not null ) 
Go

插入语句:

Insert EmployeeProfile 
   (EmpId, EmpName, EmpPhoto) 
   Select 1001, 'Vadivel', BulkColumn 
   from Openrowset( Bulk 'C:\Image1.jpg', Single_Blob) as EmployeePicture

此Sql查询工作正常。


0

我实现了将多个图像插入数据库的目标

INSERT INTO [dbo].[User]
           ([Name]
           ,[Image1]
           ,[Age]
           ,[Image2]
           ,[GroupId]
           ,[GroupName])
           VALUES
           ('Umar'
           , (SELECT BulkColumn 
            FROM Openrowset( Bulk 'path-to-file.jpg', Single_Blob) as Image1)
           ,26
           ,(SELECT BulkColumn 
            FROM Openrowset( Bulk 'path-to-file.jpg', Single_Blob) as Image2)
            ,'Group123'
           ,'GroupABC')

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.