Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserir imagem no banco de dados SQL Server 2008 Express sem aplicativo front-end


Ele funcionará para o SQL Server 2008r2... mas primeiro você precisa criar um banco de dados de fluxo de arquivos.

//cria banco de dados
CREATE DATABASE Archive 
ON
PRIMARY ( NAME = Arch1,FILENAME = 'c:\data\archdat1.mdf'),
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = Arch3,FILENAME = 'c:\data\filestream1')
LOG ON  ( NAME = Archlog1,FILENAME = 'c:\data\archlog1.ldf')
GO

//criação da tabela
Use Archive
GO
CREATE TABLE [FileStreamDataStorage]
(
[ID] [INT] IDENTITY(1,1) NOT NULL,
[FileStreamData] VARBINARY(MAX) FILESTREAM NULL,
[FileStreamDataGUID] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWSEQUENTIALID(),
[DateTime] DATETIME DEFAULT GETDATE()
)
ON [PRIMARY]
FILESTREAM_ON FileStreamGroup1
GO

//inserindo valor
Use Archive
GO
INSERT INTO [FileStreamDataStorage] (FileStreamData)
SELECT * FROM
OPENROWSET(BULK N'C:\Users\Public\Pictures\Sample Pictures\image1.jpg' ,SINGLE_BLOB) AS Document
GO