web-dev-qa-db-ja.com

SQLのみを使用してSQL Server 2005の画像フィールドに画像を挿入する

SQL Server 2005とManagement Studioを使用して、テーブルのImage型の列に画像を挿入するにはどうすればよいですか?

最も重要なことは、それが存在するかどうかをどのように確認するのですか?

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

レコードを更新する場合:

 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:を指します。
39
mathijsuitmegen

テーブルを作成:

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クエリは正常に動作しています。