Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Beskriver hur du aktiverar förutsättningarna för att skapa och använda FileTables.
Aktivera förutsättningar för FileTable
Aktivera följande objekt för att aktivera förutsättningarna för att skapa och använda FileTables:
På instansnivå:
På databasnivå:
Aktivera FILESTREAM på instansnivå
FileTables utökar funktionerna i FILESTREAM-funktionen i SQL Server. Du måste aktivera FILESTREAM för fil-I/O-åtkomst på Windows-nivå och på SQL Server-instansen innan du kan skapa och använda FileTables.
Aktivera FILESTREAM på instansnivå
Information om hur du aktiverar FILESTREAM finns i Aktivera och konfigurera FILESTREAM-.
När du anropar sp_configure
för att aktivera FILESTREAM på instansnivå måste du ange alternativet filestream_access_level
till 2
. Mer information finns i FILESTREAM-åtkomstnivå (serverkonfigurationsalternativ).
Tillåt FILESTREAM via brandväggen
Information om hur du tillåter FILESTREAM via brandväggen finns i Konfigurera en brandvägg för FILESTREAM-åtkomst.
Ange en FILESTREAM-filgrupp på databasnivå
Innan du kan skapa FileTables i en databas måste databasen ha en FILESTREAM-filgrupp. Mer information om den här förutsättningen finns i Skapa en FILESTREAM-Enabled Databas.
Aktivera icke-transaktionell åtkomst på databasnivå
Med FileTables kan Windows-program hämta en Windows-filreferens till FILESTREAM-data utan att kräva en transaktion. Om du vill tillåta den här icke-transaktionella åtkomsten till filer som lagras i SQL Server måste du ange önskad nivå av icke-transaktionell åtkomst på databasnivå för varje databas som ska innehålla FileTables.
Kontrollera om icke-transaktionell åtkomst är aktiverad på databaser
Fråga katalogvyn sys.database_filestream_options (Transact-SQL) och kontrollera kolumnerna non_transacted_access
och non_transacted_access_desc
.
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Aktivera icke-transaktionell åtkomst på databasnivå
De tillgängliga nivåerna för icke-transaktionell åtkomst är FULL, READ_ONLY och OFF.
Ange nivån för icke-transaktionell åtkomst med Transact-SQL
När du skapar en ny databas, anropar du kommandot CREATE DATABASE (SQL Server Transact-SQL) med alternativet NON_TRANSACTED_ACCESS
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
När du ändra en befintlig databasanropar du instruktionen ALTER DATABASE (Transact-SQL) med alternativet NON_TRANSACTED_ACCESS
FILESTREAM.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Ange nivån för icke-transaktionell åtkomst med SQL Server Management Studio
Du kan ange nivån för icke-transaktionell åtkomst i fältet FILESTREAM Icke-transacted Access på sidan Alternativ i dialogrutan Databasegenskaper. Mer information om den här dialogrutan finns i Databasegenskaper (alternativsida).
Ange en katalog för FileTables på databasnivå
När du aktiverar icke-transaktionell åtkomst till filer på databasnivå kan du ange ett katalognamn samtidigt med alternativet DIRECTORY_NAME
. Om du inte anger ett katalognamn när du aktiverar icke-transaktionell åtkomst måste du ange det senare innan du kan skapa FileTables i databasen.
I mapphierarkin FileTable blir den här katalogen på databasnivå underordnad det resursnamn som angetts för FILESTREAM på instansnivå och överordnad för filetables som skapats i databasen. Mer information finns i Arbeta med kataloger och sökvägar i FileTables.
Ange en katalog för FileTables på databasnivå
Namnet som du anger måste vara unikt för instansen för kataloger på databasnivå.
Ange en katalog för FileTables med Transact-SQL
När du skapa en ny databasanropar du instruktionen CREATE DATABASE (SQL Server Transact-SQL) med alternativet DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
När du ändrar en befintlig databasanropar du instruktionen ALTER DATABASE (Transact-SQL) med alternativet DIRECTORY_NAME
FILESTREAM. När du använder de här alternativen för att ändra katalognamnet måste databasen vara exklusivt låst, utan öppna filhandtag.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
När du kopplar en databasanropar du instruktionen CREATE DATABASE (SQL Server Transact-SQL) med alternativet FOR ATTACH
och alternativet DIRECTORY_NAME
FILESTREAM.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
När du återställer en databas, anropa instruktionen RESTORE (Transact-SQL) med alternativet DIRECTORY_NAME
FILESTREAM.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Ange en katalog för FileTables med SQL Server Management Studio
Du kan ange ett katalognamn i fältet FILESTREAM-katalognamn på sidan Alternativ i dialogrutan Databasegenskaper. Mer information om den här dialogrutan finns i Databasegenskaper (alternativsida).
Visa befintliga katalognamn för instansen
Om du vill visa listan över befintliga katalognamn för instansen frågar du katalogvyn sys.database_filestream_options (Transact-SQL) och kontrollerar kolumnen filestream_database_directory_name
.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Krav och begränsningar för katalogen på databasnivå
Det är valfritt att ange
DIRECTORY_NAME
när du anroparCREATE DATABASE
ellerALTER DATABASE
. Om du inte anger något värde förDIRECTORY_NAME
förblir katalognamnet null. Du kan dock inte skapa FileTables i databasen förrän du anger ett värde förDIRECTORY_NAME
på databasnivå.Det katalognamn som du anger måste uppfylla kraven i filsystemet för ett giltigt katalognamn.
När databasen innehåller FileTables kan du inte ange
DIRECTORY_NAME
tillbaka till ett null-värde.När du kopplar eller återställer en databas misslyckas åtgärden om den nya databasen har ett värde för
DIRECTORY_NAME
som redan finns i målinstansen. Ange ett unikt värde förDIRECTORY_NAME
när du anroparCREATE DATABASE FOR ATTACH
ellerRESTORE DATABASE
.När du uppgraderar en befintlig databas är värdet för
DIRECTORY_NAME
null.När du aktiverar eller inaktiverar icke-transaktionell åtkomst på databasnivå kontrollerar åtgärden inte om katalognamnet har angetts eller om det är unikt.
När du släpper en databas som har aktiverats för FileTables tas katalogen på databasnivå och alla katalogstrukturer för alla FileTables under den bort.