Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Opisuje sposób włączania wymagań wstępnych dotyczących tworzenia i używania tabel FileTables.
Włączanie wymagań wstępnych dla FileTable
Aby włączyć wymagania wstępne dotyczące tworzenia i używania tabel plików, włącz następujące elementy:
Na poziomie wystąpienia:
Na poziomie bazy danych:
Włączanie funkcji FILESTREAM na poziomie wystąpienia
FileTables rozszerzają możliwości funkcji FILESTREAM programu SQL Server. Zanim będziesz mógł tworzyć i używać tabel FileTables, musisz włączyć FILESTREAM do dostępu wejścia/wyjścia plików na poziomie Windows i w instancji SQL Server.
Włączanie funkcji FILESTREAM na poziomie wystąpienia
Aby uzyskać informacje na temat włączania funkcji FILESTREAM, zobacz Enable and Configure FILESTREAM.
Podczas wywoływania sp_configure
w celu włączenia funkcji FILESTREAM na poziomie wystąpienia należy ustawić opcję filestream_access_level
na 2
. Aby uzyskać więcej informacji, zobacz FILESTREAM access level (opcja konfiguracji serwera).
Zezwalaj na usługę FILESTREAM przez zaporę
Aby uzyskać informacje o sposobie zezwalania funkcji FILESTREAM przez zaporę, zobacz Konfigurowanie Zapory dla Dostępu do FILESTREAM.
Podaj grupę plików FILESTREAM na poziomie bazy danych
Przed utworzeniem tabel FileTables w bazie danych baza danych musi mieć grupę plików FILESTREAM. Aby uzyskać więcej informacji na temat tego wymagania wstępnego, zobacz Create a FILESTREAM-Enabled Database(Tworzenie bazy danych FILESTREAM-Enabled).
Włączanie nietransakcyjnego dostępu na poziomie bazy danych
FileTables umożliwiają aplikacjom systemu Windows uzyskanie dojścia do plików FILESTREAM bez konieczności transakcji. Aby zezwolić na nietransakcyjny dostęp do plików przechowywanych w programie SQL Server, należy określić żądany poziom nietransakcyjnego dostępu na poziomie bazy danych dla każdej bazy danych, która będzie zawierać tabele plików.
Sprawdzanie, czy dostęp nietransakcyjny jest włączony w bazach danych
Wykonaj zapytanie dotyczące widoku wykazu sys.database_filestream_options (Transact-SQL) i sprawdź kolumny non_transacted_access
i non_transacted_access_desc
.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Włączanie nietransakcyjnego dostępu na poziomie bazy danych
Dostępne poziomy dostępu nietransakcyjnego to PEŁNE, READ_ONLY i WYŁĄCZONE.
Określanie poziomu dostępu nietransakcyjnego za pomocą Transact-SQL
Podczas tworzenia nowej bazy danychwywołaj instrukcję CREATE DATABASE (SQL Server Transact-SQL) z opcją NON_TRANSACTED_ACCESS
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Jeśli zmienić istniejącą bazę danych, wywołaj instrukcję ALTER DATABASE (Transact-SQL) z opcją NON_TRANSACTED_ACCESS
FILESTREAM.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Określanie poziomu nietransakcyjnego dostępu za pomocą programu SQL Server Management Studio
Poziom dostępu nietransakcyjnego można określić w polu FILESTREAM Dostęp nietransakcyjny na stronie Opcje okna dialogowego Właściwości Bazy Danych. Aby uzyskać więcej informacji na temat tego okna dialogowego, zobacz Właściwości bazy danych (strona opcji).
Określanie katalogu dla tabel FileTables na poziomie bazy danych
Po włączeniu nietransakcyjnego dostępu do plików na poziomie bazy danych można opcjonalnie podać nazwę katalogu w tym samym czasie z opcją DIRECTORY_NAME
. Jeśli nie podasz nazwy katalogu po włączeniu dostępu nietransakcyjnego, musisz podać ją później, zanim będzie można utworzyć tabele plików w bazie danych.
W hierarchii folderów FileTable ten katalog na poziomie bazy danych staje się elementem podrzędnym nazwy udziału określonej dla parametru FILESTREAM na poziomie wystąpienia oraz elementem nadrzędnym tabel plików utworzonych w bazie danych. Aby uzyskać więcej informacji, zobacz Praca z katalogami i ścieżkami w tabelach plików.
Określanie katalogu dla tabeli FileTables na poziomie bazy danych
Określona nazwa musi być unikatowa w całym wystąpieniu dla katalogów na poziomie bazy danych.
Określanie katalogu dla tabeli FileTables z Transact-SQL
Gdy tworzysz nową bazę danych, wywołaj instrukcję CREATE DATABASE (SQL Server Transact-SQL) z opcją DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Jeśli zmieniasz istniejącą bazę danych, wywołaj instrukcję ALTER DATABASE (Transact-SQL) z opcją DIRECTORY_NAME
FILESTREAM. Jeśli używasz tych opcji do zmiany nazwy katalogu, baza danych musi być zablokowana wyłącznie bez otwartych dojść do plików.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Po dołączeniebazy danych wywołaj instrukcję CREATE DATABASE (SQL Server Transact-SQL) z opcją FOR ATTACH
i opcją DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Po przywróceniubazy danych wywołaj instrukcję RESTORE (Transact-SQL) z opcją DIRECTORY_NAME
FILESTREAM.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Określanie katalogu fileTables za pomocą programu SQL Server Management Studio
Nazwa katalogu może zostać określona w polu nazwa katalogu FILESTREAM na stronie Opcje okna dialogowego Właściwości bazy danych. Aby uzyskać więcej informacji na temat tego okna dialogowego, zobacz Właściwości bazy danych (strona opcji).
Wyświetlanie istniejących nazw katalogów dla wystąpienia
Aby wyświetlić listę istniejących nazw katalogów dla wystąpienia, wykonaj zapytanie dotyczące widoku wykazu sys.database_filestream_options (Transact-SQL) i sprawdź kolumnę filestream_database_directory_name
.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Wymagania i ograniczenia dotyczące katalogu na poziomie bazy danych
Ustawienie
DIRECTORY_NAME
jest opcjonalne podczas wywoływaniaCREATE DATABASE
lubALTER DATABASE
. Jeśli nie określisz wartości dlaDIRECTORY_NAME
, nazwa katalogu pozostanie równa null. Nie można jednak tworzyć tabel plików w bazie danych, dopóki nie określisz wartości dlaDIRECTORY_NAME
na poziomie bazy danych.Podana nazwa katalogu musi być zgodna z wymaganiami systemu plików dla prawidłowej nazwy katalogu.
Gdy baza danych zawiera tabele FileTables, nie można ustawić
DIRECTORY_NAME
z powrotem na wartość null.Po dołączeniu lub przywróceniu bazy danych operacja zakończy się niepowodzeniem, jeśli nowa baza danych ma wartość
DIRECTORY_NAME
, która już istnieje w wystąpieniu docelowym. Określ unikatową wartośćDIRECTORY_NAME
podczas wywoływaniaCREATE DATABASE FOR ATTACH
lubRESTORE DATABASE
.Podczas uaktualniania istniejącej bazy danych wartość
DIRECTORY_NAME
ma wartość null.Po włączeniu lub wyłączeniu nietransakcyjnego dostępu na poziomie bazy danych operacja nie sprawdza, czy nazwa katalogu została określona, czy jest unikatowa.
Po usunięciu bazy danych, która miała włączone FileTables, katalog na poziomie bazy danych i wszystkie struktury katalogów wszystkich FileTables w nim zostaną usunięte.