Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azt a könyvtárstruktúrát ismerteti, amelyben a fájlokat a FileTables tárolja.
Hogyan dolgozzunk könyvtárakkal és elérési utakkal a FileTables használatával
A Következő három függvényt használhatja a FileTable-könyvtárak használatához a Transact-SQL-ben:
| Az eredmény lekérése | Használja ezt a függvényt |
|---|---|
| Szerezze be egy adott FileTable vagy az aktuális adatbázis gyökérszintű UNC elérési útját. | FileTableRootPath (Transact-SQL) |
| Abszolút vagy relatív UNC-elérési út lekérése fájlhoz vagy könyvtárhoz a FileTable-ban. | GetFileNamespacePath (Transact-SQL) |
| Az elérési út megadásával lekérheti a fájltáblában megadott fájl vagy könyvtár elérési útvonal-keresőazonosítóját. | GetPathLocator (Transact-SQL) |
Relatív elérési utak használata hordozható kódhoz
Ha a kódot és az alkalmazásokat függetleníteni szeretné az aktuális számítógépétől és adatbázisától, kerülje az abszolút fájlelérési utakra támaszkodó kód írását. Ehelyett a FileTableRootPath (Transact-SQL) és GetFileNamespacePath (Transact-SQL)) függvények együttes használatával szerezze be a fájlok teljes elérési útját a következő példában látható módon. Alapértelmezés szerint a GetFileNamespacePath függvény az adatbázis gyökérútvonala alatti fájl relatív elérési útját adja vissza.
USE database_name;
DECLARE @root NVARCHAR(100);
DECLARE @fullpath NVARCHAR(1000);
SELECT @root = FileTableRootPath();
SELECT @fullpath = @root + file_stream.GetFileNamespacePath()
FROM filetable_name
WHERE name = N'document_name';
PRINT @fullpath;
GO
Korlátozások
Nestszint
Fontos
A FileTable könyvtárban nem tárolhat több mint 15 alkönyvtárszintet. Ha 15 alkönyvtárszintet tárol, akkor a legalacsonyabb szint nem tartalmazhat fájlokat, mivel ezek a fájlok további szintet jelentenek.
A teljes elérési út nevének hossza
Fontos
Az NTFS fájlrendszer támogatja az olyan elérési útneveket, amelyek jóval hosszabbak, mint a Windows rendszerhéj és a legtöbb Windows API 260 karakteres korlátja. Ezért létrehozhat fájlokat a FileTable fájlhierarchiájában olyan Transact-SQL használatával, amelyeket nem tekinthet meg vagy nyithat meg a Windows Intézővel vagy sok más Windows-alkalmazással, mivel a teljes elérési út neve meghaladja a 260 karaktert. Azonban továbbra is elérheti ezeket a fájlokat a Transact-SQL használatával.
A FileTable-ban tárolt elem teljes elérési útja
A Fájltáblában tárolt fájl vagy könyvtár teljes elérési útja a következő elemekkel kezdődik:
Az SQL Server-példány szintjén engedélyezett megosztás a FILESTREAM fájl I/O eléréséhez.
A
DIRECTORY_NAMEaz adatbázis szintjén van megadva.A Fájltábla szintjén meghatározott
FILETABLE_DIRECTORY.
Az eredményként kapott hierarchia a következőképpen néz ki:
\\<machine>\<instance-level FILESTREAM share>\<database-level directory>\<FileTable directory>\
Ez a könyvtárhierarchia képezi a FileTable fájlnévterének gyökerét. Ebben a címtárhierarchiában a FileTable FILESTREAM-adatai fájlokként, valamint alkönyvtárakként lesznek tárolva, amelyek fájlokat és alkönyvtárakat is tartalmazhatnak.
Fontos szem előtt tartani, hogy a példányszintű FILESTREAM-megosztásban létrehozott címtárhierarchia egy virtuális könyvtárhierarchia. Ez a hierarchia az SQL Server-adatbázisban van tárolva, és fizikailag nem jelenik meg az NTFS fájlrendszerben. A FILESTREAM-megosztásban és a fájltáblákban lévő fájlokhoz és könyvtárakhoz hozzáférő összes műveletet elfogja és kezeli a fájlrendszerbe beágyazott SQL Server-összetevő.
A példány, adatbázis és FileTable szintek gyökérkönyvtárainak szemantikája
Ez a címtárhierarchia a következő szemantikát figyeli meg:
A példányszintű FILESTREAM-megosztást egy rendszergazda konfigurálja, és a kiszolgáló tulajdonságaként tárolja. Ezt a megosztást az SQL Server Configuration Managerrel nevezheti át. Az átnevezési művelet csak a kiszolgáló újraindítása után lép érvénybe.
Új adatbázis létrehozásakor az adatbázisszintű
DIRECTORY_NAMEalapértelmezés szerint null értékű. A rendszergazda aALTER DATABASEutasítással állíthatja be vagy módosíthatja ezt a nevet. A névnek egyedinek kell lennie (kis- és nagybetűk megkülönböztetése esetén) az adott példányban.A
FILETABLE_DIRECTORYnevét általában aCREATE TABLEutasítás részeként adja meg a FileTable létrehozásakor. Ezt a nevet aALTER TABLEparanccsal módosíthatja.Ezeket a gyökérkönyvtárakat nem nevezheti át fájl I/O-műveleteken keresztül.
Ezeket a gyökérkönyvtárakat nem lehet kizárólagos fájlkezelőkkel megnyitni.
A FileTable séma is_directory oszlopa
Az alábbi táblázat a is_directory oszlop és a FileTable FILESTREAM-adatait tartalmazó file_stream oszlop közötti interakciót ismerteti.
| az is_directory érték | fájlfolyam érték | Magatartás |
|---|---|---|
FALSE |
NULL |
Ez egy érvénytelen kombináció, amelyet egy rendszer által meghatározott kényszer fog be. |
FALSE |
<value> |
Az elem egy fájlt jelöl. |
TRUE |
NULL |
Az elem egy könyvtárat jelöl. |
TRUE |
<value> |
Ez egy érvénytelen kombináció, amelyet egy rendszer által meghatározott kényszer fog be. |
Virtuális hálózatnevek (VNN-ek) használata Always On rendelkezésre állási csoportokkal
Ha a FILESTREAM- vagy FileTable-adatokat tartalmazó adatbázis egy rendelkezésre állási csoporthoz tartozik:
A FILESTREAM és a FileTable függvények számítógépnevek helyett virtuális hálózatneveket (VNN-eket) fogadnak el vagy adnak vissza. További információ ezekről a függvényekről: FILESTREAM és FileTable Functions (Transact-SQL).
A fájlrendszer API-jain keresztül a FILESTREAM- vagy FileTable-adatokhoz való minden hozzáférésnek VNN-eket kell használnia a számítógépnevek helyett. További információ: FILESTREAM és FileTable az Always On rendelkezésre állási csoportokkal (SQL Server).