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
Ismerteti, hogyan tölthet be vagy migrálhat fájlokat a FileTablesba.
Fájlok betöltése vagy áttelepítése Fájltáblába
A fájlok Fájltáblába való betöltéséhez vagy áttelepítéséhez választott módszer attól függ, hogy a fájlok hol vannak jelenleg tárolva.
| Fájlok aktuális helye | A migrálás beállításai |
|---|---|
| A fájlok jelenleg a fájlrendszerben vannak tárolva. Az SQL Server nem ismeri a fájlokat. |
Mivel a FileTable mappaként jelenik meg a Windows fájlrendszerében, a fájlok áthelyezéséhez vagy másolásához elérhető módszerek bármelyikével egyszerűen betölthet fájlokat egy új FileTable-ba. Ezek a módszerek közé tartozik a Windows Intéző, a parancssori beállítások, például xcopy és robocopy, valamint egyéni szkriptek vagy alkalmazások. Meglévő mappát nem konvertálhat Fájltáblává. |
| A fájlok jelenleg a fájlrendszerben vannak tárolva. Az SQL Server tartalmaz egy metaadattáblát, amely a fájlokra mutató mutatókat tartalmaz. |
Az első lépés a fájlok áthelyezése vagy másolása az előző módszerek egyikével. A második lépés a meglévő metaadatok táblázatának frissítése, hogy a fájlok új helyére mutasson. További információért lásd ebben a cikkben a példát: fájlok áttelepítése a fájlrendszerből egy FileTable-be. |
Útmutató: Fájlok betöltése Fájltáblába
A fájlok Fájltáblába való betöltéséhez az alábbi módszereket használhatja:
Húzza és dobja be a fájlokat a forrásmappákból az új FileTable mappába a Windows Intézőben.
Használjon parancssori beállításokat, például
move,copy,xcopyvagyrobocopya parancssorból vagy egy kötegfájlból vagy parancsfájlból.Egyéni alkalmazás írásával áthelyezheti vagy másolhatja a fájlokat a C# vagy a Visual Basic .NET alkalmazásban. Metódusok meghívása a
System.IOnévtérből.
Példa: Fájlok áttelepítése a fájlrendszerből egy FileTable-ba
Ebben a forgatókönyvben a fájlok a fájlrendszerben vannak tárolva, és rendelkezik egy metaadattáblával az SQL Serverben, amely a fájlokra mutató mutatókat tartalmaz. Át szeretné helyezni a fájlokat egy FileTable-fájlba, majd a metaadatokban lévő egyes fájlok eredeti UNC elérési útját a FileTable UNC elérési útjára cserélni. A GetPathLocator függvény segít elérni ezt a célt.
Ebben a példában tegyük fel, hogy létezik egy meglévő adatbázistábla, PhotoMetadata, amely fényképek adatait tartalmazza. Ez a táblázat UNCPathvarchar(512) típusú tartalmaz, amely egy .jpg fájl tényleges UNC-elérési útját tartalmazza.
Ha a rendszerképfájlokat a fájlrendszerből egy FileTable-ba szeretné migrálni, a következő műveleteket kell elvégeznie:
Hozzon létre egy új FileTable-t a fájlok tárolásához. Ez a példa a tábla nevét használja,
dbo.PhotoTable, de nem jeleníti meg a táblát létrehozó kódot.Használja a(z) xcopy vagy egy hasonló eszközt, hogy a
.jpgfájlokat a könyvtárszerkezetükkel együtt a FileTable gyökérkönyvtárába másolja.Javítsa ki a metaadatokat a
PhotoMetadatatáblában az alábbi példához hasonló kód használatával:
-- Add a path locator column to the PhotoMetadata table.
ALTER TABLE PhotoMetadata ADD pathlocator HIERARCHYID;
-- Get the root path of the Photo directory on the File Server.
DECLARE @UNCPathRoot VARCHAR(100) = '\\RemoteShare\Photographs';
-- Get the root path of the FileTable.
DECLARE @FileTableRoot VARCHAR(1000);
SELECT @FileTableRoot = FileTableRootPath('dbo.PhotoTable');
-- Update the PhotoMetadata table.
-- Replace the File Server UNC path with the FileTable path.
UPDATE PhotoMetadata
SET UNCPath = REPLACE(UNCPath, @UNCPathRoot, @FileTableRoot);
-- Update the pathlocator column to contain the pathlocator IDs from the FileTable.
UPDATE PhotoMetadata
SET pathlocator = GetPathLocator(UNCPath);
Fájlok tömeges betöltése Fájltáblába
A FileTable a tömeges műveletek normál tábláihoz hasonlóan viselkedik. A FileTable rendszer által definiált korlátozásokkal rendelkezik, amelyek biztosítják a fájl- és könyvtárnévtér integritásának fenntartását. Ezeket a korlátozásokat ellenőrizni kell a Fájltáblába tömegesen betöltött adatokon. Mivel egyes tömeges beszúrási műveletek lehetővé teszik a táblakorlátozások figyelmen kívül hagyását, a rendszer a következő követelményeket érvényesíti.
A korlátozásokat kikényszerítő tömeges betöltési műveletek futtathatók fájltáblán, mint bármely más táblán. Ez a kategória a következő műveleteket tartalmazza:
-
bcp a(z)
CHECK_CONSTRAINTSzáradékkal. -
BULK INSERTaCHECK_CONSTRAINTSzáradékkal. -
INSERT INTO ... SELECT * FROM OPENROWSET(BULK ...)aIGNORE_CONSTRAINTSzáradék nélkül.
-
bcp a(z)
A kényszereket nem érvényesítő tömeges betöltési műveletek meghiúsulnak, hacsak a FileTable rendszer által definiált kényszerek nincsenek letiltva. Ez a kategória a következő műveleteket tartalmazza:
-
bcp
CHECK_CONSTRAINTSzáradék nélkül. -
BULK INSERTCHECK_CONSTRAINTSzáradék nélkül. -
INSERT INTO ... SELECT * FROM OPENROWSET(BULK ...)aIGNORE_CONSTRAINTSzáradékkal.
-
bcp
Útmutató: Fájlok tömeges betöltése Fájltáblába
Különböző módszerekkel tömegesen tölthet be fájlokat a FileTable-ba:
Hívás a CHECK_CONSTRAINTS-os záradékkal.
Tiltsa le a FileTable névteret, és hívja meg a CHECK_CONSTRAINTS záradék nélkül. Ezután engedélyezze újra a FileTable névteret.
A FileTable-korlátozások letiltásáról további információt a FileTables kezelésecímű témakörben talál.
Útmutató: A FileTable korlátozásainak letiltása tömeges betöltéshez
Ha a rendszer által meghatározott korlátozások kényszerítése nélkül szeretné tömegesen betölteni a fájlokat a FileTable-ba, ideiglenesen letilthatja a korlátozásokat. További információ: FileTables kezelése.