2009-01-06 8 views

risposta

86
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 
+20

È importante notare che il percorso elencato viene cercato su SQL Server (non sul server di interrogazione). Quindi se il tuo SQL Server non è la tua macchina di sviluppo devi ottenere la tua immagine referibile dal computer SQL Server. – Vaccano

0

Crea tabella:

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

Inserire dichiarazione:

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

Questo funziona bene query SQL.

36

Per aggiornamento di un record:

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

Note:

  • Assicurarsi di aggiungere autorizzazioni di ruolo del 'bulkadmin' per l'accesso che si sta utilizzando.
  • I percorsi non puntano al computer quando si utilizza SQL Server Management Studio. Se avvii SSMS sul computer locale e ti connetti a un'istanza di SQL Server sul server X, il file C: \ photo.bmp punta al disco rigido C: sul server X, non sulla tua macchina!
+0

Come posso procedere se la mia immagine è memorizzata localmente e voglio inserirla nel DB remoto? – Joze

+2

Utilizzare una condivisione di rete: UPDATE Dipendenti SET [Foto] = (SELEZIONA MyImage. * Da Openrowset (bulk '\\ nome-propria-macchina \ Shared Folder \ photo.bmp', Single_Blob) MyImage) dove Id = 10 – mathijsuitmegen

Problemi correlati