web-dev-qa-db-fra.com

Insérer une image dans le champ d'image SQL Server 2005 à l'aide de SQL uniquement

Comment utiliser SQL Server 2005 et Management Studio pour insérer une image dans une colonne de type Image d'une table?

Plus important encore, comment puis-je vérifier si c'est là?

70
Germstorm
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
92
Darin Dimitrov

Pour mettre à jour un enregistrement:

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

Notes:

  • Assurez-vous d'ajouter les autorisations de rôle 'BULKADMIN' pour la connexion que vous utilisez.
  • Les chemins d'accès ne pointent pas sur votre ordinateur lors de l'utilisation de SQL Server Management Studio. Si vous démarrez SSMS sur votre machine locale et vous vous connectez à une instance SQL Server sur le serveur X, le fichier C:\photo.bmp pointera vers le disque dur C: sur le serveur X, pas sur votre machine!
39
mathijsuitmegen

Créer un tableau:

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

Insérer une déclaration:

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

Cette requête SQL fonctionne très bien.

0