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
Bemutatja, hogyan hozhat létre új FileTable-t, illetve hogyan módosíthatja vagy elvetheti a meglévő FileTable-t.
Fájltábla létrehozása
A FileTable egy speciális felhasználói tábla, amely előre definiált és rögzített sémával rendelkezik. Ez a séma a FILESTREAM-adatokat, a fájl- és könyvtáradatokat, valamint a fájlattribútumokat tárolja. A FileTable sémával kapcsolatos információkért tekintse meg a FileTable-sémát.
Új FileTable-t Transact-SQL vagy SQL Server Management Studióval hozhat létre. Mivel a FileTable egy rögzített sémával rendelkezik, nem kell megadnia az oszlopok listáját. A FileTable létrehozásának egyszerű szintaxisa lehetővé teszi a következőket:
Könyvtárnév. A FileTable mappahierarchiában ez a táblaszintű könyvtár lesz az adatbázis szintjén megadott adatbáziskönyvtár gyermekkönyvtára, valamint a táblában tárolt fájlok vagy könyvtárak szülője.
A Fájltábla oszlopában a
Namefájlnevekhez használandó rendezés neve.A 3 elsődleges kulcshoz használandó nevek és az automatikusan létrehozott egyedi korlátozások.
Fájltábla létrehozása Transact-SQL segítségével
Hozzon létre egy Fájltáblát úgy, hogy meghívja a CREATE TABLE utasítást a AS FILETABLE beállítással. Mivel a FileTable egy rögzített sémával rendelkezik, nem kell megadnia az oszlopok listáját. Az új FileTable következő beállításait adhatja meg:
FILETABLE_DIRECTORY. Megadja azt a könyvtárat, amely a Fájltáblában tárolt összes fájl és könyvtár gyökérkönyvtáraként szolgál. Ennek a névnek egyedinek kell lennie az adatbázisban található összes FileTable könyvtárnév között. Az egyediség összehasonlítása nem érzékeny a kis- és nagybetűkre, függetlenül az aktuális kódolási beállításoktól.Ez az érték nvarchar(255) adattípussal rendelkezik, és rögzített rendezést
Latin1_General_CI_AS_KS_WShasznál.A megadott címtárnévnek meg kell felelnie a fájlrendszer érvényes könyvtárnévre vonatkozó követelményeinek.
Ennek a névnek egyedinek kell lennie az adatbázisban található összes FileTable könyvtárnév között. Az egyediség összehasonlítása kis- és nagybetűkre érzéketlen, függetlenül az aktuális sorrend beállításoktól.
Ha nem ad meg könyvtárnevet a FileTable létrehozásakor, akkor a rendszer maga a FileTable nevet használja a címtárnévként.
FILETABLE_COLLATE_FILENAME. Megadja a FájltáblaNameoszlopára alkalmazandó kolláció nevét.A megadott rendezésnek nem kell megkülönböztetnie a kis- és nagybetűket, hogy megfeleljen a Windows fájlnevezési elveknek.
Ha nem ad meg értéket
FILETABLE_COLLATE_FILENAME, vagy megadjadatabase_default, az oszlop örökli az aktuális adatbázis kollációját. Ha a jelenlegi adatbázis-rendezés megkülönbözteti a kis- és nagybetűkre vonatkozó adatokat, a rendszer hibát jelez, és aCREATE TABLEművelet meghiúsul.
Megadhatja a 3 elsődleges kulcshoz használandó neveket és az automatikusan létrehozott egyedi korlátozásokat is. Ha nem ad meg neveket, akkor a rendszer a jelen cikk későbbi részében ismertetett módon hoz létre neveket.
FILETABLE_PRIMARY_KEY_CONSTRAINT_NAMEFILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAMEFILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME
Példák
Az alábbi példa létrehoz egy új FileTable-t, és felhasználó által definiált értékeket ad meg mind a FILETABLE_DIRECTORY, mind a FILETABLE_COLLATE_FILENAME számára.
CREATE TABLE DocumentStore AS FILETABLE
WITH (
FILETABLE_DIRECTORY = 'DocumentTable',
FILETABLE_COLLATE_FILENAME = database_default
);
GO
Az alábbi példa egy új FileTable-t is létrehoz. Mivel a felhasználó által megadott értékek nincsenek megadva, az érték FILETABLE_DIRECTORY a FileTable neve lesz, az érték FILETABLE_COLLATE_FILENAME database_default lesz, és az elsődleges kulcs és az egyedi korlátozások rendszer által generált neveket kapnak.
CREATE TABLE DocumentStore AS FILETABLE;
GO
FileTable létrehozása az SQL Server Management Studióval
Az Object Explorerben bontsa ki az objektumokat a kijelölt adatbázis alatt, majd kattintson a jobb gombbal a Táblák mappára, majd válassza az Új fájltábla lehetőséget.
Ez a beállítás megnyit egy új szkriptablakot, amely egy Transact-SQL parancsfájlsablont tartalmaz, amelyet testre szabhat és futtathat a FileTable létrehozásához. A szkript egyszerű testreszabásához használja a Lekérdezés menüben a Sablonparaméterek értékeinek megadása lehetőséget.
A FileTable létrehozásának követelményei és korlátozásai
A meglévő táblákat nem módosíthatja fájltáblává alakításához.
Az adatbázis szintjén korábban megadott szülőkönyvtárnak nem null értékűnek kell lennie. Az adatbázisszintű címtár megadásáról további információt a FileTable előfeltételeinek engedélyezése című témakörben talál.
A Fájltáblákhoz érvényes FILESTREAM-fájlcsoport szükséges, mivel a FileTable fájlstream oszlopot tartalmaz. Opcióként megadhat egy érvényes FILESTREAM-fájlcsoportot a FileTable létrehozásához szükséges
CREATE TABLEutasítás részeként. Ha nem ad meg fájlcsoportot, akkor a FileTable az adatbázis alapértelmezett FILESTREAM fájlcsoportját használja. Ha az adatbázis nem rendelkezik FILESTREAM-fájlcsoporttal, a rendszer hibát jelez.Az
CREATE TABLE...AS FILETABLEutasítás részeként nem hozhat létre táblakorlátozást. A kényszert azonban később is hozzáadhatja egyALTER TABLEutasítással.Az adatbázisban vagy a többi rendszeradatbázisban nem hozhat létre Fájltáblát
tempdb.A FileTable nem hozható létre ideiglenes táblaként.
Fájltábla módosítása
Mivel a FileTable előre definiált és rögzített sémával rendelkezik, az oszlopok nem vehetők fel és nem módosíthatók. Azonban hozzáadhat egyéni indexeket, eseményindítókat, korlátozásokat és egyéb beállításokat a FileTable-hoz.
A FileTable névtér engedélyezésére vagy letiltására vonatkozó utasítással ALTER TABLE kapcsolatos információkért, beleértve a rendszer által meghatározott korlátozásokat, olvassa el a FileTables kezelése című témakört.
Fájltábla könyvtárának módosítása a Transact-SQL használatával
Hívja meg a ALTER TABLE utasítást, és adjon meg egy érvényes új értéket a SET beállításhoz a FILETABLE_DIRECTORY részére.
Example
ALTER TABLE filetable_name SET (FILETABLE_DIRECTORY = N'directory_name');
GO
Fájltábla könyvtárának módosítása az SQL Server Management Studióval
Az Objektumkezelőben kattintson a jobb gombbal a Fájltáblára, és válassza a Tulajdonságok lehetőséget a Táblázat tulajdonságai párbeszédpanel megnyitásához. A FileTable lapon adjon meg egy új értéket a FileTable könyvtárnévhez.
A FileTable módosításának követelményei és korlátozásai
A (z)
FILETABLE_COLLATE_FILENAMEértéke nem módosítható.A FileTable rendszer által definiált oszlopait nem módosíthatja, nem helyezheti el vagy tilthatja le.
Nem adhat hozzá új felhasználói oszlopokat, számított oszlopokat vagy megőrzött számított oszlopokat a FileTable-hoz.
Fájltábla elvetése
A FileTable elvetése a DROP TABLE utasítás szokásos szintaxisával történik.
Fájltábla elvetésekor a következő objektumok is el lesznek vetve:
A fájltábla összes oszlopa és a táblához társított összes objektum( például indexek, megkötések és triggerek) szintén el lesz ejtve.
A FileTable könyvtár és a benne lévő alkönyvtárak eltűnnek az adatbázis FILESTREAM-fájljából és könyvtárhierarchiájából.
A DROP TABLE parancs meghiúsul, ha a Fájltábla fájlnévterében nyitott fájlleírók találhatók. A nyitott leírók bezárásáról további információt a Fájltáblák kezelése című témakörben talál.
Fájltábla létrehozásakor más adatbázis-objektumok is létrejönnek
Új FileTable létrehozásakor a rendszer által definiált indexek és korlátozások is létrejönnek. Ezeket az objektumokat nem módosíthatja és nem helyezheti el; csak akkor tűnnek el, ha maga a FileTable el van dobva. Az objektumok listájának megtekintéséhez kérdezze le a katalógusnézetet sys.filetable_system_defined_objects.
--View all objects for all filetables, unsorted
SELECT *
FROM sys.filetable_system_defined_objects;
GO
--View sorted list with friendly names
SELECT OBJECT_NAME(parent_object_id) AS 'FileTable',
OBJECT_NAME(object_id) AS 'System-defined Object'
FROM sys.filetable_system_defined_objects
ORDER BY FileTable, 'System-defined Object';
GO
Új FileTable létrehozásakor létrehozott indexek
Új FileTable létrehozásakor a rendszer a következő rendszer által definiált indexeket is létrehozza:
| Columns | Index típusa | Clustered |
|---|---|---|
[path_locator] ASC |
Elsődleges kulcs | Nem |
[parent_path_locator] ASC, [name] ASC |
Unique | Nem |
[stream_id] ASC |
Unique | Nem |
Új FileTable létrehozásakor létrehozott korlátozások
Új FileTable létrehozásakor a rendszer a következő rendszer által meghatározott korlátozásokat is létrehozza:
| Constraints | Érvényesíti |
|---|---|
Az alábbi oszlopok alapértelmezett korlátozásai:creation_timeis_archiveis_directoryis_hiddenis_offlineis_readonlyis_systemis_temporarylast_access_timelast_write_timepath_locatorstream_id |
A rendszer által definiált alapértelmezett korlátozások a megadott oszlopok alapértelmezett értékeit kényszerítik ki. |
| Korlátozások ellenőrzése | A rendszer által meghatározott ellenőrzési korlátozások a következő követelményeket érvényesítik: Érvényes fájlnevek. Érvényes fájlattribútumok. A szülőobjektumnak könyvtárnak kell lennie. A névtérhierarchia zárolva van a fájlkezelés során. |
Elnevezési konvenció a rendszer által meghatározott korlátozásokhoz
A korábban ismertetett rendszer által definiált korlátozások neve olyan formátumban <constraintType>_<tablename>[_<columnname>]_<uniquifier> van, ahol:
`<constraint_type> lehet CK (ellenőrzési kényszer), DF (alapértelmezett kényszer), FK (idegen kulcs), PK (elsődleges kulcs) vagy UQ (egyedi kényszer).
<uniquifier>egy rendszer által létrehozott sztring, amely egyedivé teszi a nevet. Ez a sztring a FileTable nevet és egy egyedi azonosítót tartalmazhat.