Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом разделе описывается использование инструкций Transact-SQL INSERT, UPDATE и DELETE для управления данными FILESTREAM.
Замечание
В примерах этого раздела требуется база данных с поддержкой FILESTREAM и таблица, созданные в статье "Создание базы данных FILESTREAM-Enabled " и создание таблицы для хранения данных FILESTREAM.
Вставка строки, содержащей данные FILESTREAM
Чтобы добавить строку в таблицу, поддерживающую данные FILESTREAM, используйте инструкцию Transact-SQL INSERT. При вставке данных в столбец FILESTREAM, можно вставить NULL или значение varbinary(max).
Вставка NULL
В следующем примере показано, как вставить NULL. Если значение FILESTREAM равно NULL, ядро СУБД не создает файл в файловой системе.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 1, NULL);
GO
Вставка записи Zero-Length
В следующем примере показано, как использовать INSERT для создания записи нулевой длины. Это полезно, когда требуется получить дескриптор файла, но манипулировать файлом необходимо с помощью API Win32.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 2,
CAST ('' as varbinary(max)));
GO
Создание файла данных
В следующем примере показано, как создать INSERT файл, содержащий данные. Ядро СУБД преобразует строку Seismic Data в varbinary(max) значение. FILESTREAM создает файл Windows, если он еще не существует. Затем данные добавляются в файл данных.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 3,
CAST ('Seismic Data' as varbinary(max)));
GO
При выборе всех данных из элемента Archive.
dbo.Records таблица, результаты похожи на результаты, отображаемые в следующей таблице. Однако столбец Id будет содержать разные идентификаторы GUID.
| Идентификатор | Серийный номер | Резюме |
|---|---|---|
C871B90F-D25E-47B3-A560-7CC0CA405DAC |
1 |
NULL |
F8F5C314-0559-4927-8FA9-1535EE0BDF50 |
2 |
0x |
7F680840-B7A4-45D4-8CD5-527C44D35B3F |
3 |
0x536569736D69632044617461 |
Обновление данных FILESTREAM
Вы можете использовать Transact-SQL для обновления данных в файле файловой системы; Хотя это может не потребоваться сделать, если необходимо передавать большие объемы данных в файл.
В следующем примере любой текст в записи файла заменяется текстом Xray 1.
UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;
Удаление данных FILESTREAM
При удалении строки, содержащей поле FILESTREAM, вы также удаляете базовые файлы файловой системы. Единственным способом удаления строки и, следовательно, файла является использование инструкции Transact-SQL DELETE.
В следующем примере показано, как удалить строку и связанные с ней файлы файлов файловой системы.
DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO
При выборе всех данных из таблицы dbo.Archive строка отсутствует. Вы больше не можете использовать связанный файл.
Замечание
Базовые файлы удаляются сборщиком мусора FILESTREAM.
См. также
Включение и настройка FILESTREAM
Избегайте конфликтов с операциями базы данных в приложениях FILESTREAM