Published on

January 6, 2019

Изучение функции FILESTREAM в SQL Server

Функция FILESTREAM в SQL Server – это мощная возможность, которая позволяет хранить объекты Varbinary (Max) в файловой системе, а не внутри базы данных. В этой статье мы более подробно рассмотрим функцию FILESTREAM и изучим, как создать базу данных SQL Server с включенной функцией FILESTREAM.

Включение функции FILESTREAM

Прежде чем мы сможем создать базу данных с включенной функцией FILESTREAM, нам необходимо включить FILESTREAM на уровне экземпляра SQL Server. Это можно сделать, следуя этим шагам:

  1. Откройте SQL Server Configuration Manager
  2. Включите FILESTREAM
  3. Укажите уровень доступа к FILESTREAM в SQL Server

Создание базы данных с включенной функцией FILESTREAM

После включения FILESTREAM на уровне экземпляра можно приступить к созданию базы данных с включенной функцией FILESTREAM. Вот шаги:

  1. Подключитесь к экземпляру SQL Server
  2. Щелкните правой кнопкой мыши на “Базы данных” и выберите “Новая база данных”
  3. Укажите имя базы данных и расположение файлов MDF и LDF
  4. Перейдите на страницу “Файловые группы” и добавьте файловую группу FILESTREAM SQL Server
  5. Укажите путь, где будут храниться большие файлы
  6. Создайте базу данных

Создание таблицы с данными FILESTREAM

Теперь, когда у нас есть база данных с включенной функцией FILESTREAM, мы можем создать таблицу с данными FILESTREAM. Вот пример скрипта:

USE [ВашаБазаДанных]
GO

CREATE TABLE [ВашаТаблица]
(
    [ИдентификаторФайла] UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,
    [ИмяФайла] VARCHAR(50),
    [ДанныеФайла] VARBINARY(MAX) FILESTREAM
);
GO

Вставка и извлечение данных FILESTREAM

После создания таблицы мы можем вставлять и извлекать данные FILESTREAM. Вот пример:

DECLARE @ДанныеФайла VARBINARY(MAX);

SELECT @ДанныеФайла = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET(BULK 'C:\Путь\К\Файлу', SINGLE_BLOB) AS ДанныеФайла;

INSERT INTO [ВашаТаблица] ([ИдентификаторФайла], [ИмяФайла], [ДанныеФайла])
VALUES (NEWID(), 'ПримерФайла', @ДанныеФайла);

SELECT [ИдентификаторФайла], [ИмяФайла], [ДанныеФайла]
FROM [ВашаТаблица];

Обновление и удаление данных FILESTREAM

Обновление и удаление данных FILESTREAM аналогично обновлению и удалению данных в обычной таблице. Вот некоторые примеры команд:

UPDATE [ВашаТаблица]
SET [ДанныеФайла] = (SELECT * FROM OPENROWSET(BULK 'C:\Путь\К\НовомуФайлу', SINGLE_BLOB) AS НовыеДанныеФайла)
WHERE [ИдентификаторФайла] = 'ВашИдентификаторФайла';

DELETE FROM [ВашаТаблица]
WHERE [ИдентификаторФайла] = 'ВашИдентификаторФайла';

Заключение

В этой статье мы изучили функцию FILESTREAM в SQL Server и узнали, как создать базу данных с включенной функцией FILESTREAM. Мы также увидели, как вставлять, извлекать, обновлять и удалять данные FILESTREAM. FILESTREAM – это мощная функция, которая может значительно улучшить хранение и извлечение больших двоичных объектов в SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.