Yükleme dosyalarına FileTables

Yük ya da FileTables dosyaları geçirmek anlatılmaktadır.

Bu Konuda

I want to...

  • Yük ya da dosyaları bir FileTable geçirmek

    • Nasıl yapılır: Dosya bir FileTable yüklemek

    • Örnek: Dosyalar dosya sisteminden bir FileTable göç

  • Toplu yükleme dosyalarına bir FileTable

    • Nasıl yapılır: Bulk Load bir FileTable dosyaları

    • Nasıl-e doğru: FileTable kısıtlamaları toplu yükleme için devre dışı bırakma

Bir FileTable dosya yükleme veya geçiş

Yükleme ya da bir FileTable dosyaları geçirmek için seçtiğiniz yöntem dosyalar şu anda depolandığı üzerinde bağlıdır.

Geçerli dosya konumunu

Geçiş seçenekleri

Dosyalar şu anda dosya sisteminde depolanır.

SQL Serverdosyaları hiçbir bilgiye sahip.

Beri bir FileTable Windows dosya sisteminde bir klasör olarak görünür, yeni bir FileTable taşınması ya da dosya kopyalama için kullanılabilir olan yöntemlerden herhangi birini kullanarak dosyaları kolayca yükleyebilirsiniz. Bu yöntemler, xcopy ve robocopy ve özel komut dosyaları ve uygulamalar dahil olmak üzere komut satırı seçenekleri için Windows Explorer içerir.

Bir FileTable için var olan bir klasöre dönüştürülemiyor.

Dosyalar şu anda dosya sisteminde depolanır.

SQL Servermeta veri dosyalarına işaretçiler içeren bir tablo içerir.

Taşımak veya yukarıdaki yöntemlerden birini kullanarak dosyaları kopyalamak için ilk adım olduğunu.

Dosyaları yeni konumu göstermek için meta verileri varolan bir tabloyu güncelleştirmek için ikinci adım olacaktır.

Daha fazla bilgi için bkz: Örnek: Migrating dosyaları dosya sisteminden bir FileTable içine bu konuda.

[YUKARI]

Nasıl yapılır: Dosya bir FileTable yüklemek

Bir FileTable dosyaları yüklemek için kullanabileceğiniz yöntemler şunlardır:

  • Sürükle ve bırak klasörlerde bulunan dosyaları kaynak Windows Gezgini'nde yeni FileTable klasörüne.

  • Komut isteminde veya bir toplu iş dosyası veya komut dosyası gibi move, copy, xcopy veya robocopy komut satırı seçeneklerini kullanın.

  • C# ya da Visual Basic.NET yöntemleri kullanan özel bir uygulama yazmak System.IO ad dosyaları taşıyın veya kopyalayın.

[YUKARI]

Örnek: Dosyalar dosya sisteminden bir FileTable göç

Bu senaryoda, dosyalarınızı dosya sisteminde depolanır ve meta veri tablosu var. SQL Serverdosyalarına işaretçiler içeren. Bir FileTable dosyaları taşıyın ve sonra her dosyanın meta veri özgün unc yolunu FileTable unc yolu ile değiştirmek istiyorum. GetPathLocator (Transact-sql)İşlevi, bu hedefe ulaşmak için yardımcı olur.

Bu örnekte, varolan bir veritabanı tablosu olduğunu varsayalım PhotoMetadata, Fotoğraflar hakkında veriler içerir. Bu tablo bir sütunu olan UNCPath türü varchar(512) .jpg dosya gerçek unc yolunu içeren.

Görüntü dosyaları dosya sisteminden bir FileTable geçirmek için aşağıdakileri yapmanız gerekir:

  1. Dosyaları saklamak için yeni bir FileTable oluşturun. Bu örnek tablo adını kullanır dbo.PhotoTable, ancak tablo oluşturmak için kod göstermez.

  2. FileTable kök dizini kendi dizin yapısı ile .jpg dosyaları kopyalamak için xcopy ya da benzer bir araç kullanın.

  3. Meta verileri düzeltmek PhotoMetadata tablosu aşağıdakine benzer bir kod kullanarak,:

--  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);

[YUKARI]

Toplu bir FileTable dosya yükleme

Bir FileTable aşağıdaki niteliklere sahip toplu işlemler için normal bir tablo gibi davranır.

Bir FileTable olan dosya ve dizin ad alanının bütünlüğü korunur sağlamak sistem tanımlı kısıtlamaları vardır. Bu kısıtlamalar FileTable yüklenen veri toplu doğrulanmış olması gerekir. Tablo kısıtlamaları dikkate alınması bazı toplu ekleme işlemleri izin beri aşağıdaki şartları uygulanır.

  • Toplu yükleme kısıtlamaları zorlamak işlemleri karşı bir FileTable karşı başka herhangi bir tablo olarak çalıştırabilirsiniz. Bu kategori aşağıdaki işlemleri içerir:

    • BCP ile CHECK_CONSTRAINTS yan tümcesi.

    • bulk INSERT ile CHECK_CONSTRAINTS yan tümcesi.

    • TAKIN... SEÇİN * from openrowset (bulk...) olmadan IGNORE_CONSTRAINTS yan tümcesi.

  • FileTable sistem tanımlı kısıtlamaları devre dışı bırakılmış olmadıkça kısıtlamaları zorlamak değil toplu yükleme işlemleri başarısız olur. Bu kategori aşağıdaki işlemleri içerir:

    • BCP CHECK_CONSTRAINTS fıkra olmadan.

    • bulk INSERT CHECK_CONSTRAINTS fıkra olmadan.

    • TAKIN... SEÇİN * from openrowset (bulk...) IGNORE_CONSTRAINTS yan tümcesi ile.

[YUKARI]

Nasıl yapılır: Bulk Load bir FileTable dosyaları

Bir FileTable yükleme dosyalarını toplu olarak çeşitli yöntemleri kullanabilirsiniz:

  • BCP

    • Aramak CHECK_CONSTRAINTS tümcesi.

    • FileTable ad alanını devre dışı bırakır ve arama CHECK_CONSTRAINTS tümcesi. Sonra FileTable ad alanını yeniden etkinleştirin.

  • TOPLU EKLEME

    • Aramak CHECK_CONSTRAINTS tümcesi.

    • FileTable ad alanını devre dışı bırakır ve arama CHECK_CONSTRAINTS tümcesi. Sonra FileTable ad alanını yeniden etkinleştirin.

  • TAKIN... SEÇİN * FROM OPENROWSET (BULK...)

    • Aramak IGNORE_CONSTRAINTS tümcesi.

    • FileTable ad alanını devre dışı bırakır ve arama IGNORE_CONSTRAINTS tümcesi. Sonra FileTable ad alanını yeniden etkinleştirin.

FileTable sınırlamaları devre dışı bırakma hakkında daha fazla bilgi için bkz: FileTables yönetme.

[YUKARI]

Nasıl-e doğru: FileTable kısıtlamaları toplu yükleme için devre dışı bırakma

Sistem tanımlı kısıtlamaları zorlamayı yükü olmadan bir FileTable içine yükleme dosyalarını toplu kısıtlamaları geçici olarak devre dışı bırakabilirsiniz. Daha fazla bilgi için, bkz. FileTables yönetme.

[YUKARI]

Ayrıca bkz.

Kavramlar

Transact-SQL erişim FileTables

Dosya I\O API'leri erişim FileTables