2009-01-06 15 views

Odpowiedz

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

Należy zauważyć, że szukana ścieżka jest poszukiwana na serwerze SQL (a nie na komputerze zapytującym). Jeśli więc twój serwer SQL nie jest twoim urządzeniem deweloperskim, będziesz musiał pobrać obraz z maszyny SQL Server. – Vaccano

0

Tworzenie tabeli: oświadczenie

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

Insert:

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

ten działa dobrze SQL Query.

36

Do aktualizacji rekordu:

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

Uwagi:

  • upewnij się, aby dodać uprawnienia roli 'BULKADMIN' do logowania używasz.
  • Ścieżki nie wskazują na komputer podczas korzystania z SQL Server Management Studio. Jeśli uruchomisz SSMS na komputerze lokalnym i połączysz się z instancją serwera SQL na serwerze X, plik C: \ photo.bmp wskaże dysk twardy C: na serwerze X, a nie na twoim komputerze!
+0

Jak mogę kontynuować, jeśli mój obraz jest przechowywany lokalnie i chcę wstawić do zdalnej bazy danych? – Joze

+2

Użyj udziału sieciowego: UPDATE Employees SET [Photo] = (SELECT MyImage. * Z Openrowset (zbiorczy "\\ nazwa-komputera \ Folder współdzielony \ photo.bmp", Single_Blob) MyImage) gdzie Id = 10 – mathijsuitmegen

Powiązane problemy