Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Hierin wordt beschreven hoe u de vereisten voor het maken en gebruiken van FileTables inschakelt.
Voorwaarden inschakelen voor FileTable
Als u de vereisten voor het maken en gebruiken van FileTables wilt inschakelen, schakelt u de volgende items in:
op exemplaarniveau:
op databaseniveau:
FILESTREAM inschakelen op exemplaarniveau
FileTables breiden de mogelijkheden van de FILESTREAM-functie van SQL Server uit. U moet FILESTREAM inschakelen voor I/O-toegang op Windows-niveau en op het exemplaar van SQL Server voordat u FileTables kunt maken en gebruiken.
FILESTREAM inschakelen op exemplaarniveau
Zie FILESTREAM inschakelen en configureren voor meer informatie over het inschakelen van FILESTREAM.
Wanneer u sp_configure
aanroept om FILESTREAM op exemplaarniveau in te schakelen, moet u de optie filestream_access_level
instellen op 2
. Zie FILESTREAM-toegangsniveau (serverconfiguratieoptie)voor meer informatie.
FILESTREAM via de firewall toestaan
Zie Een firewall configureren voor FILESTREAM-toegangvoor meer informatie over het toestaan van FILESTREAM via de firewall.
Een FILESTREAM-bestandsgroep opgeven op databaseniveau
Voordat u FileTables in een database kunt maken, moet de database een FILESTREAM-bestandsgroep hebben. Voor meer informatie over deze vereiste, zie Maak een FILESTREAM-Enabled-databaseaan.
Niet-transactionele toegang op databaseniveau inschakelen
Met FileTables kunnen Windows-toepassingen een Windows-bestandsingang verkrijgen naar FILESTREAM-gegevens zonder dat hiervoor een transactie is vereist. Als u deze niet-transactietoegang wilt toestaan tot bestanden die zijn opgeslagen in SQL Server, moet u het gewenste niveau van niet-transactionele toegang opgeven op databaseniveau voor elke database die FileTables bevat.
Controleren of niet-transactionele toegang is ingeschakeld voor databases
Voer een query uit in de catalogusweergave sys.database_filestream_options (Transact-SQL) en controleer de kolommen non_transacted_access
en non_transacted_access_desc
.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Niet-transactionele toegang op databaseniveau inschakelen
De beschikbare niveaus van niet-transactionele toegang zijn VOLLEDIG, READ_ONLY en UIT.
Geef het niveau van niet-transactionele toegang op met Transact-SQL
Wanneer u een nieuwe databasemaakt, roept u de CREATE DATABASE (SQL Server Transact-SQL) instructie aan met de optie NON_TRANSACTED_ACCESS
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Wanneer u een bestaande database wijzigt, roept u de ALTER DATABASE (Transact-SQL) instructie aan met de optie NON_TRANSACTED_ACCESS
FILESTREAM.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Het niveau van niet-transactionele toegang opgeven met SQL Server Management Studio
U kunt het niet-transactionele toegangsniveau opgeven in het veld FILESTREAM Niet-transacted Access van de Opties van de database-eigenschappen. Zie Database-eigenschappen (optiespagina)voor meer informatie over dit dialoogvenster.
Een map opgeven voor FileTables op databaseniveau
Wanneer u niet-transactionele toegang tot bestanden op databaseniveau inschakelt, kunt u eventueel tegelijkertijd een mapnaam opgeven met de optie DIRECTORY_NAME
. Als u geen mapnaam opgeeft wanneer u niet-transactionele toegang inschakelt, moet u deze later opgeven voordat u FileTables in de database kunt maken.
In de maphiƫrarchie van FileTable wordt deze map op databaseniveau een submap van de opgegeven sharenaam voor FILESTREAM op exemplaarniveau en een bovenliggende map van de FileTables die in de database zijn aangemaakt. Zie Werken met mappen en paden in FileTablesvoor meer informatie.
Een map opgeven voor FileTables op databaseniveau
De naam die u opgeeft, moet uniek zijn binnen de instantie voor directory's op databaseniveau.
Geef een map op voor FileTables met Transact-SQL
Wanneer u een nieuwe databasemaakt, roept u de CREATE DATABASE (SQL Server Transact-SQL) instructie aan met de optie DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Wanneer u een bestaande database wijzigt, roept u de ALTER DATABASE (Transact-SQL) instructie aan met de optie DIRECTORY_NAME
FILESTREAM. Wanneer u deze opties gebruikt om de mapnaam te wijzigen, moet de database exclusief worden vergrendeld, zonder geopende bestandsingangen.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Wanneer u een database bijvoegt, roept u de instructie CREATE DATABASE (SQL Server Transact-SQL) aan met de optie FOR ATTACH
en met de FILESTREAM-optie DIRECTORY_NAME
.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Wanneer u een database herstellen, roept u de instructie RESTORE (Transact-SQL) aan met de optie DIRECTORY_NAME
FILESTREAM.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Een map opgeven voor FileTables met SQL Server Management Studio
U kunt een mapnaam opgeven in het filestream-mapnaam veld van de pagina Opties van het dialoogvenster Database-eigenschappen. Zie Database-eigenschappen (optiespagina)voor meer informatie over dit dialoogvenster.
Bestaande mapnamen voor de instantie weergeven
Als u de lijst met bestaande mapnamen voor het exemplaar wilt weergeven, voert u een query uit in de catalogusweergave sys.database_filestream_options (Transact-SQL) en controleert u de kolom filestream_database_directory_name
.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Vereisten en beperkingen voor de map op databaseniveau
Het instellen van de
DIRECTORY_NAME
is optioneel wanneer uCREATE DATABASE
ofALTER DATABASE
aanroept. Als u geen waarde opgeeft voorDIRECTORY_NAME
, blijft de mapnaam null. U kunt echter geen FileTables maken in de database totdat u een waarde opgeeft voorDIRECTORY_NAME
op databaseniveau.De mapnaam die u opgeeft, moet voldoen aan de vereisten van het bestandssysteem voor een geldige mapnaam.
Wanneer de database FileTables bevat, kunt u de
DIRECTORY_NAME
niet terugzetten op een null-waarde.Wanneer u een database koppelt of herstelt, mislukt de bewerking als de nieuwe database een waarde heeft voor
DIRECTORY_NAME
die al bestaat in het doelexemplaren. Geef een unieke waarde op voorDIRECTORY_NAME
wanneer uCREATE DATABASE FOR ATTACH
ofRESTORE DATABASE
aanroept.Wanneer u een bestaande database bijwerkt, is de waarde van
DIRECTORY_NAME
nul.Wanneer u niet-actieve toegang op databaseniveau inschakelt of uitschakelt, controleert de bewerking niet of de mapnaam is opgegeven of uniek is.
Wanneer u een database verwijdert die is ingeschakeld voor FileTables, worden de map op databaseniveau en alle mapstructuren van alle FileTables eronder verwijderd.