Zarządzanie danymi FILESTREAM przy użyciu języka Transact-SQL

W tym temacie opisano sposób używania Transact-SQL WSTAWIANIA, aktualizacji i usuwanie instrukcji, aby zarządzać FILESTREAM danych.

Ostrzeżenie

Przykłady w tym temacie wymagają włączoną FILESTREAM bazy danych i tabela, utworzony w jak: Tworzenie bazy danych włączono FILESTREAM i jak: Tworzenie tabeli do przechowywania danych FILESTREAM.

Wstawianie wiersza, który zawiera dane FILESTREAM

Aby dodać wiersz do tabela, która obsługuje dane FILESTREAM, użyj Transact-SQL WSTAWIĆ instrukcja.Przy wstawianiu danych do kolumna FILESTREAM można wstawić wartość NULL lub varbinary(max) wartości.

Wstawianie NULL

Poniższy przykład pokazuje sposób wstawić NULL.Gdy wartość FILESTREAM jest NULL, Aparat baz danych nie tworzy plik w systemie plików.

INSERT INTO Archive.dbo.Records
    VALUES (newid (), 1, NULL);
GO

Wstawienie rekordu o zerowej długości

Poniższy przykład pokazuje sposób używania INSERT , aby utworzyć rekord o zerowej długości.Jest to przydatne, gdy chcesz uzyskać dojścia do pliku, ale będzie manipulowanie pliku za pomocą interfejsów API podsystemu Win32.

INSERT INTO Archive.dbo.Records
    VALUES (newid (), 2, 
      CAST ('' as varbinary(max)));
GO

Tworzenie pliku danych

Poniższy przykład pokazuje sposób używania INSERT do utworzenia pliku, który zawiera dane. Aparat baz danych Konwertuje ciąg Seismic Data do varbinary(max) wartości.FILESTREAM tworzy plik Windows, jeśli jeszcze nie istnieje.Następnie dodaje się dane do pliku danych.

INSERT INTO Archive.dbo.Records
    VALUES (newid (), 3, 
      CAST ('Seismic Data' as varbinary(max)));
GO

Po wybraniu wszystkich danych z Archive.dbo.Records tabela, wyniki są podobne do wyników, które przedstawiono w poniższej tabela.Jednakże Id kolumna będzie zawierać różne identyfikatory GUID.

Identyfikator

Numer seryjny

Wznów

C871B90F-D25E-47B3-A560-7CC0CA405DAC

1

NULL

F8F5C314-0559-4927-8FA9-1535EE0BDF50

2

0x

7F680840-B7A4-45D4-8CD5-527C44D35B3F

3

0x536569736D69632044617461

Aktualizowanie danych FILESTREAM

Można użyć Transact-SQL do aktualizacji danych w systemie pliku; chociaż nie można to zrobić, gdy strumień dużych ilości danych do pliku.

Poniższy przykład zastępuje dowolny tekst w rekordzie pliku z tekstem Xray 1.

UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;

Usuwanie danych FILESTREAM

Usunąć wiersz, który zawiera pole FILESTREAM, również usunąć jego podstawowej systemu plików.Jedynym sposobem Usuń wiersz i dlatego plik, jest użycie Transact-SQL usunąć instrukcja.

Poniższy przykład pokazuje jak usunąć wiersz i jego skojarzony plik pliki systemowe.

DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO

Po wybraniu wszystkich danych z dbo.Archive tabela, wiersz jest nieobecne.Można już skojarzony plik.

Ostrzeżenie

Podstawowe pliki są usuwane przez FILESTREAM moduł zbierający elementy bezużyteczne.