Create, Alter ve FileTables bırak

Yeni bir FileTable oluşturmak veya değiştirmek veya varolan bir FileTable bırak açıklar.

Bu Konuda

I want to...

  • Bir FileTable oluşturun

    • Nasıl yapılır: bir FileTable oluşturmak

    • Gereksinimleri ve kısıtlamaları bir FileTable oluşturmak için

  • ALTER bir FileTable

    • Nasıl yapılır: bir FileTable dizinini değiştirme

    • Gereksinimleri ve kısıtlamaları bir FileTable değiştirme

  • Bir FileTable bırak

Daha fazla bilgi edinin

  • When you Create a FileTable diğer veritabanı nesneleri oluşturulur

Bir FileTable oluşturma

Bir FileTable önceden tanımlanmış ve sabit bir şema olan özel kullanıcı bir tablodur. Bu şema, FILESTREAM veri, dosya ve dizin bilgisi ve dosya öznitelikleri depolar. FileTable şeması hakkında daha fazla bilgi için bkz: FileTable şeması.

Sen-ebilmek yaratmak a yeni FileTable Transact-sql kullanarak veya SQL Server Management Studio. Bir FileTable sabit bir şema olduğundan, sütun listesi belirtmeniz gerekmez. Bir FileTable oluşturmak için basit sözdizimi belirtmenizi sağlar:

  • Bir dizin adı. FileTable klasör hiyerarşisinde, belirtilen veritabanı düzeyi ve dosyaların veya dizinlerin tabloda depolanan ana veritabanı dizini alt tablo düzeyi dizin olur.

  • Dosya adları için kullanılacak harmanlama adını ad FileTable sütun.

  • 3 PRIMARY key ve UNIQUE kısıtlamaları otomatik olarak oluşturulan için kullanılacak adlar.

Nasıl yapılır: bir FileTable oluşturmak

  • Transact-sql kullanarak bir FileTable oluşturmak
    Bir FileTable çağırarak oluşturmak Tablo (Transact-sql) oluşturdeyimi ile as FileTable seçeneği. Bir FileTable sabit bir şema olduğundan, sütun listesi belirtmeniz gerekmez. Yeni FileTable için şu ayarları belirtebilirsiniz:

    1. FILETABLE_DIRECTORY. Tüm dosyaların kök dizini ve FileTable içinde depolanan dizin görevi gören dizini belirtir. Bu ad, veritabanındaki tüm FileTable dizin adları arasında benzersiz olmalıdır. Geçerli harmanlama ayarlarını bağımsız olarak benzersiz karşılaştırma duyarlıdır.

      • Bu değer bir veri türüne sahip nvarchar(255) ve sabit bir harmanlama kullanır Estonian_CS_AS.

      • Sağladığınız dizin adı için geçerli bir dizin adı dosya sistemi gereksinimlerine uymak zorundadır.

      • Bu ad, veritabanındaki tüm FileTable dizin adları arasında benzersiz olmalıdır. Geçerli harmanlama ayarlarını bağımsız olarak benzersiz karşılaştırma duyarlıdır.

      • FileTable oluşturduğunuzda bir dizin adı belirtmezseniz, FileTable adı dizin adı olarak kullanılır.

    2. FILETABLE_COLLATE_FILENAME. Uygulanacak harmanlama adını belirtir ad FileTable sütununda.

      1. Belirtilen harmanlama olmalıdır duyarsız Windows Dosya semantik adlandırma etmis.

      2. Bir değer belirtmezseniz FILETABLE_COLLATE_FILENAME, veya database_default, sütun geçerli veritabanı harmanlama devralır. Geçerli veritabanı harmanlama büyük/küçük harf duyarlıdır, bir hata oluşturulur ve create table işlemi başarısız olur.

    3. Ayrıca 3 PRIMARY key ve UNIQUE kısıtlamaları otomatik olarak oluşturulan adlarını belirtebilirsiniz. Ardından ad belirtmezseniz, bu konuda ileride açıklandığı gibi sistem adları oluşturur.

      • FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME

      • FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME

      • FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME

    Örnekler

    Aşağıdaki örnek, yeni bir FileTable oluşturur ve hem de kullanıcı tanımlı değerler belirtir FILETABLE_DIRECTORY ve FILETABLE_COLLATE_FILENAME.

    CREATE TABLE DocumentStore AS FileTable
        WITH ( 
              FileTable_Directory = 'DocumentTable',
              FileTable_Collate_Filename = database_default
             );
    GO
    

    Aşağıdaki örnek, yeni bir FileTable de oluşturur. Kullanıcı tanımlı değerleri belirtilmemiş olduğundan, değeri FILETABLE_DIRECTORY FileTable, değer adı olur FILETABLE_COLLATE_FILENAME database_default olur ve birincil anahtar ve benzersiz contraints sistem tarafından oluşturulan adlar alır.

    CREATE TABLE DocumentStore AS FileTable;
    GO
    
  • SQL Server Management Studio'yu kullanarak bir FileTable oluşturmak
    Nesne Explorer'da altında seçili veritabanına nesneleri'ni genişletin, sonra sağ tıklayın tablo klasörü ve daha sonra Yeni FileTable.

    Bu seçenek, özelleştirebileceğiniz ve bir FileTable oluşturmak için çalıştırmak bir Transact-sql komut dosyası şablonu içeren yeni bir komut dosyası penceresi açılır. Kullanım Şablon parametreler için değerler belirtin Tarih seçeneği sorgu menü script kolayca özelleştirin.

[YUKARI]

Gereksinimleri ve kısıtlamaları bir FileTable oluşturmak için

  • Bir FileTable dönüştürmek için varolan bir tabloda değişiklik yapamazsınız.

  • Daha önce veritabanı düzeyinde belirtilen üst dizini boş olmayan bir değer olması gerekir. Veritabanı düzeyi dizin belirtme hakkında daha fazla bilgi için bkz: Önkoşullar için etkinleştir FileTable.

  • Bir FileTable, bir FileTable FILESTREAM sütun içerdiğinden geçerli bir FILESTREAM filegroup gerektirir. İsteğe bağlı olarak geçerli FILESTREAM filegroup bir parçası olarak belirleyebileceğiniz create table bir FileTable oluşturmak için komut. Bir filegroup belirtmezseniz, FileTable varsayılan FILESTREAM filegroup veritabanı kullanır. FILESTREAM filegroup veritabanı yoksa, bir hata oluşturulur.

  • Bir parçası olarak bir tablo kısıtlaması oluşturamazsınız bir create table…as FILETABLE deyimi. Ancak kısıtlamayı daha sonra kullanarak ekleyebileceğiniz bir alter table deyimi.

  • Bir FileTable içinde oluşturulamıyor tempdb veritabanı veya herhangi bir diğer sistem veritabanları.

  • Bir FileTable geçici bir tablo oluşturamazsınız.

[YUKARI]

Bir FileTable değiştirme

Yana bir FileTable önceden tanımlanmış ve sabit bir şema, ekleyemez veya sütunlarını değiştirmek. Ancak, bir FileTable için özel dizinler, Tetikleyiciler, kısıtlamaları ve diğer seçenekleri ekleyebilirsiniz.

Etkinleştirmek veya devre dışı FileTable ad sistem tanımlı kısıtlamaları da dahil olmak üzere, alter table deyimi kullanma hakkında bilgi için bkz: FileTables yönetme.

Nasıl yapılır: bir FileTable dizinini değiştirme

  • Transact-sql kullanarak bir FileTable dizinini değiştirme
    alter table deyimi aramak ve geçerli yeni değer sağlamak FILETABLE_DIRECTORY set seçenek.

    Örnek

    ALTER TABLE filetable_name
        SET ( FILETABLE_DIRECTORY = N'directory_name' );
    GO
    
  • SQL Server Management Studio'yu kullanarak bir FileTable dizinini değiştirme
    Nesne Gezgini'nde seçin ve FileTable sağ Özellikler açmak için Tablo özellikleri iletişim kutusu. Tarih FileTable sayfasında, yeni bir değer girin FileTable dizin adı.

[YUKARI]

Gereksinimleri ve kısıtlamaları bir FileTable değiştirme

  • Değeri değişiklik yapamazsınız FILETABLE_COLLATE_FILENAME.

  • Değiştiremez, bırakın veya bir FileTable sistem tanımlı sütunları devre dışı bırakın.

  • Bir FileTable için yeni kullanıcı sütunu, hesaplanan sütunlar veya kalıcı hesaplanmış sütunlar ekleyemezsiniz.

[YUKARI]

Bir FileTable bırakarak

Sen-ebilmek damla bir FileTable sıradan sözdizimini kullanarak drop table (Transact-sql)deyimi.

Bir FileTable düşürdüğünüzde aşağıdaki nesneler de bırakılır:

  • FileTable tüm sütunları ve tablo, dizinler, kısıtlamaları ve Tetikleyiciler gibi ilişkili tüm nesneler de düştü.

  • FileTable dizini ve içerdiği alt veritabanı FILESTREAM dosya ve dizin hiyerarşi yok.

FileTable'nın dosyası ad alanında açık dosya tanıtıcısı varsa drop table komutu başarısız olur. Açık tanıtıcıları kapatma hakkında daha fazla bilgi için bkz: FileTables yönetme.

[YUKARI]

When you Create a FileTable diğer veritabanı nesneleri oluşturulur

Yeni FileTable oluşturduğunuzda, bazı sistem tanımlı dizinler ve kısıtlamalar da oluşturulur. Alter veya bu nesneleri bırakın; sadece FileTable bırakılan olurlar. Bu nesnelerin listesini görmek için Katalog görünümü sorgulama sys.filetable_system_defined_objects (Transact-sql).

--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
  • Yeni FileTable oluşturduğunuzda, oluşturulan dizinler
    Yeni FileTable oluşturduğunuzda, aşağıdaki sistem tanımlı dizinler ayrıca oluşturulur:

    Sütunlar

    Dizin türü

    [path_locator] ASC

    Birincil anahtar, kümelenmemiş

    [parent_path_locator] ASC,

    [isim] ASC

    Benzersiz, kümelenmemiş

    [stream_id] ASC

    Benzersiz, kümelenmemiş

  • Yeni FileTable oluşturduğunuzda, oluşturulan kısıtlamaları
    Yeni FileTable oluşturduğunuzda, aşağıdaki sistem tanımlı kısıtlamaları da oluşturulur:

    Kısıtlamaları

    Zorlar

    Varsayılan kısıtlamaları aşağıdaki sütunlar:

    • creation_time

    • is_archive

    • is_directory

    • is_hidden

    • is_offline

    • is_readonly

    • is_system

    • is_temporary

    • last_access_time

    • last_write_time

    • path_locator

    • stream_id

    Belirtilen sütun için varsayılan değerleri varsayılan sistem tanımlı kısıtlamaları zorlamak.

    Check kısıtlamaları

    Sistem tanımlı check kısıtlamaları aşağıdaki gereksinimler Uygula:

    • Geçerli dosya adları.

    • Geçerli dosya öznitelikleri.

    • Üst nesne, bir dizin olmalıdır.

    • Namespace hiyerarşi dosyası işleme sırasında kilitli.

  • Sistem tanımlı kısıtlamaları için adlandırma kuralı
    Yukarıda açıklanan sistem tanımlı constaints biçiminde adlandırılır <constraintType>_<tablename>_<columnname>] _<uniquifier > yeri:

    • <constraint_type>ck (check kısıtlaması), df (varsayılan kısıtlama), fk (yabancı anahtar), pk (birincil anahtar) veya uq (benzersiz kısıtlama) olduğunu.

    • <uniquifier>adı benzersiz yapmak için sistem tarafından oluşturulan dizesidir. Bu dize, FileTable adı ve benzersiz bir tanımlayıcı içerebilir.

[YUKARI]

Ayrıca bkz.

Kavramlar

FileTables yönetme