Activer les prérequis pour FileTable
S’applique à :SQL Server
Décrit la manière de satisfaire aux conditions préalables en vue de la création et de l'utilisation de FileTables.
Activation des prérequis pour FileTable
Pour activer les conditions préalables en vue de créer et d'utiliser les FileTables, activez les éléments suivants :
Au niveau de l'instance :
Au niveau de la base de données :
Activation de FILESTREAM au niveau de l’instance
Les FileTables étendent les fonctionnalités de la fonctionnalité FILESTREAM de SQL Server. Vous devez activer FILESTREAM pour l’accès aux E/S de fichier au niveau Windows et sur l’instance de SQL Server, avant de pouvoir créer et utiliser des FileTables.
Activer FILESTREAM au niveau de l’instance
Pour plus d’informations sur l’activation de FILESTREAM, consultez Activer et configurer FILESTREAM.
Lorsque vous appelez sp_configure
pour activer FILESTREAM au niveau de l’instance, vous devez définir l’option filestream_access_level
2
sur . Pour plus d’informations, consultez le niveau d’accès FILESTREAM (option de configuration du serveur).
Autoriser FILESTREAM via le pare-feu
Pour plus d'informations sur l'activation de FILESTREAM via le pare-feu, consultez Configure a Firewall for FILESTREAM Access.
Fournir un groupe de fichiers FILESTREAM au niveau de la base de données
Avant de pouvoir créer des FileTables dans une base de données, cette dernière doit avoir un groupe de fichiers FILESTREAM. Pour plus d’informations sur cette condition préalable, consultez Créer une base de données compatible FILESTREAM.
Activer l’accès nontransactionnel au niveau de la base de données
Les FileTables permettent aux applications Windows d'obtenir un descripteur de fichier Windows aux données FILESTREAM sans requérir de transaction. Pour autoriser cet accès nontransactionnel aux fichiers stockés dans SQL Server, vous devez spécifier le niveau souhaité d’accès nontransactionnel au niveau de la base de données pour chaque base de données qui contiendra des FileTables.
Vérifier si l’accès nontransactionnel est activé sur les bases de données
Interrogez l’affichage catalogue sys.database_filestream_options (Transact-SQL) et case activée les colonnes et non_transacted_access_desc
les non_transacted_access
colonnes.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Activer l’accès nontransactionnel au niveau de la base de données
Les niveaux disponibles d’accès nontransactionnel sont FULL, READ_ONLY et OFF.
Spécifier le niveau d’accès nontransactionnel avec Transact-SQL
Lorsque vous créez une base de données, appelez l’instruction CREATE DATABASE (SQL Server Transact-SQL) avec l’option NON_TRANSACTED_ACCESS
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Lorsque vous modifiez une base de données existante, appelez l’instruction ALTER DATABASE (Transact-SQL) avec l’option NON_TRANSACTED_ACCESS
FILESTREAM.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Spécifier le niveau d’accès nontransactionnel avec SQL Server Management Studio
Vous pouvez spécifier le niveau d’accès non transactionnel dans le champ Accès non transactionnel FILESTREAM de la page Options de la boîte de dialogue Propriétés de la base de données. Pour plus d’informations sur cette boîte de dialogue, consultez Propriétés de la base de données (page Options).
Spécifier un répertoire pour FileTables au niveau de la base de données
Lorsque vous activez l’accès nontransactionnel aux fichiers au niveau de la base de données, vous pouvez éventuellement fournir un nom de répertoire en même temps que l’option DIRECTORY_NAME
. Si vous ne fournissez pas de nom de répertoire lorsque vous activez l’accès nontransactionnel, vous devez le fournir ultérieurement avant de pouvoir créer des FileTables dans la base de données.
Dans l'arborescence du dossier FileTable, ce répertoire de base de données devient l'enfant du nom de partage spécifié pour FILESTREAM au niveau de l'instance, et le parent des FileTables créés dans la base de données. Pour plus d'informations, consultez Work with Directories and Paths in FileTables.
Spécifier un répertoire pour FileTables au niveau de la base de données
Le nom que vous spécifiez doit être unique dans l'instance pour les répertoires de niveau base de données.
Spécifier un répertoire pour FileTables avec Transact-SQL
Lorsque vous créez une base de données, appelez l’instruction CREATE DATABASE (SQL Server Transact-SQL) avec l’option DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Lorsque vous modifiez une base de données existante, appelez l’instruction ALTER DATABASE (Transact-SQL) avec l’option DIRECTORY_NAME
FILESTREAM. Lorsque vous utilisez ces options pour modifier le nom de répertoire, la base de données doit être verrouillée en mode exclusif, sans descripteurs de fichiers ouverts.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Lorsque vous attachez une base de données, appelez l’instruction CREATE DATABASE (SQL Server Transact-SQL) avec l’option FOR ATTACH
et l’option DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Lorsque vous restaurez une base de données, appelez l’instruction RESTORE (Transact-SQL) avec l’option DIRECTORY_NAME
FILESTREAM.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Spécifier un répertoire pour FileTables avec SQL Server Management Studio
Vous pouvez spécifier un nom de répertoire dans le champ Nom du répertoire FILESTREAM de la page Options de la boîte de dialogue Propriétés de la base de données . Pour plus d’informations sur cette boîte de dialogue, consultez Propriétés de la base de données (page Options).
Afficher les noms de répertoires existants pour l’instance
Pour afficher la liste des noms de répertoires existants pour l’instance, interrogez l’affichage catalogue sys.database_filestream_options (Transact-SQL) et case activée la filestream_database_directory_name
colonne.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Conditions requises et restrictions pour le répertoire au niveau de la base de données
La définition de l’option
DIRECTORY_NAME
est facultative lorsque vous appelezCREATE DATABASE
ouALTER DATABASE
. Si vous ne spécifiez pas de valeur pourDIRECTORY_NAME
, le nom du répertoire reste null. Toutefois, vous ne pouvez pas créer de FileTables dans la base de données tant que vous n’avez pas spécifié de valeur auDIRECTORY_NAME
niveau de la base de données.Le nom de répertoire que vous fournissez doit se conformer aux configurations requises du système de fichiers concernant les noms de répertoire valides.
Lorsque la base de données contient des FileTables, vous ne pouvez pas définir la
DIRECTORY_NAME
valeur Null.Lorsque vous attachez ou restaurez une base de données, l’opération échoue si la nouvelle base de données a une valeur pour
DIRECTORY_NAME
celle qui existe déjà dans l’instance cible. Spécifiez une valeur unique lorsqueDIRECTORY_NAME
vous appelezCREATE DATABASE FOR ATTACH
ouRESTORE DATABASE
.Lorsque vous mettez à niveau une base de données existante, la valeur est
DIRECTORY_NAME
Null.Lorsque vous activez ou désactivez l’accès nontransactionnel au niveau de la base de données, l’opération n’case activée pas si le nom du répertoire a été spécifié ou s’il est unique.
Lorsque vous supprimez une base de données activée pour les FileTables, le répertoire de niveau base de données et toutes les structures de répertoires de tous les FileTables situés au niveau inférieur sont supprimés.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour