Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yeni bir FileTable'ın nasıl oluşturulacağını veya var olan bir FileTable'ı nasıl değiştirip bırakacağını açıklar.
Bir FileTable oluşturma
FileTable, önceden tanımlanmış ve sabit bir şeması olan özelleştirilmiş bir kullanıcı tablosudur. Bu şema FILESTREAM verilerini, dosya ve dizin bilgilerini ve dosya özniteliklerini depolar. FileTable şeması hakkında bilgi için bkz. FileTable Şeması.
Transact-SQL veya SQL Server Management Studio kullanarak yeni bir FileTable oluşturabilirsiniz. FileTable'ın sabit bir şeması olduğundan, sütun listesi belirtmeniz gerekmez. FileTable oluşturmak için basit söz dizimi şunları belirtmenize olanak tanır:
Dizin adı. FileTable klasör hiyerarşisinde, bu tablo düzeyindeki dizin, veritabanı düzeyinde belirtilen veritabanı dizininin alt öğesi ve tabloda depolanan dosyaların veya dizinlerin üst öğesi olur.
FileTable'daki
Namesütunu için dosya adlarıyla kullanılacak harmanlama adı.Otomatik olarak oluşturulan 3 birincil anahtar ve benzersiz kısıtlamalar için kullanılacak adlar.
Transact-SQL ile FileTable oluşturma
CREATE TABLE deyimini AS FILETABLE seçeneğiyle çağırarak bir DosyaTablosu oluşturun. FileTable'ın sabit bir şeması olduğundan, sütun listesi belirtmeniz gerekmez. Yeni FileTable için aşağıdaki ayarları belirtebilirsiniz:
FILETABLE_DIRECTORY. FileTable'da depolanan tüm dosyalar ve dizinler için kök dizin işlevi görecek dizini belirtir. Bu ad, veritabanındaki tüm FileTable dizin adları arasında benzersiz olmalıdır. Geçerli harmanlama ayarlarından bağımsız olarak benzersizlik karşılaştırması büyük/küçük harfe duyarlı değildir.Bu değer nvarchar(255) veri türüne sahiptir ve sabit harmanlama kullanır
Latin1_General_CI_AS_KS_WS.Sağladığınız dizin adı, geçerli bir dizin adı için dosya sisteminin gereksinimlerine uygun olmalıdır.
Bu ad, veritabanındaki tüm FileTable dizin adları arasında benzersiz olmalıdır. Geçerli harmanlama ayarlarından bağımsız olarak benzersizlik karşılaştırması büyük/küçük harfe duyarlı değildir.
FileTable'ı oluştururken bir dizin adı sağlamazsanız, dizin adı olarak FileTable'ın adı kullanılır.
FILETABLE_COLLATE_FILENAME. FileTable'daki sütuna uygulanacak harmanlamanınNameadını belirtir.Belirtilen harmanlama, Windows dosya adlandırma semantiğine uymak için büyük/küçük harfe duyarlı olmamalıdır.
için
FILETABLE_COLLATE_FILENAMEbir değer sağlamazsanız veya belirtirsenizdatabase_default, sütun geçerli veritabanının harmanlamasını devralır. Mevcut veritabanı sıralama düzeni büyük/küçük harfe duyarlıysa bir hata oluşur veCREATE TABLEişlemi başarısız olur.
Ayrıca, otomatik olarak oluşturulan 3 birincil anahtar ve benzersiz kısıtlamalar için kullanılacak adları da belirtebilirsiniz. Ad sağlamazsanız, sistem bu makalenin devamında açıklandığı gibi adlar oluşturur.
FILETABLE_PRIMARY_KEY_CONSTRAINT_NAMEFILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAMEFILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME
Örnekler
Aşağıdaki örnek yeni bir FileTable oluşturur ve hem FILETABLE_DIRECTORYhem de FILETABLE_COLLATE_FILENAME için kullanıcı tanımlı değerleri belirtir.
CREATE TABLE DocumentStore AS FILETABLE
WITH (
FILETABLE_DIRECTORY = 'DocumentTable',
FILETABLE_COLLATE_FILENAME = database_default
);
GO
Aşağıdaki örnek ayrıca yeni bir FileTable oluşturur. Kullanıcı tanımlı değerler belirtilmediğinden FILETABLE_DIRECTORY değeri FileTable adı olur, değeri FILETABLE_COLLATE_FILENAME database_default olur ve birincil anahtar ve benzersiz kısıtlamalar sistem tarafından oluşturulan adları alır.
CREATE TABLE DocumentStore AS FILETABLE;
GO
SQL Server Management Studio ile FileTable oluşturma
Nesne Gezgini'nde, seçili veritabanının altındaki nesneleri genişletin, tablolar klasörüne sağ tıklayın ve Yeni FileTable'ı seçin.
Bu seçenek, bir FileTable oluşturmak için özelleştirebileceğiniz ve çalıştırabileceğiniz bir Transact-SQL betik şablonu içeren yeni bir betik penceresi açar. Betiği kolayca özelleştirmek için Sorgu menüsündeki Şablon Parametreleri için Değerleri Belirt seçeneğini kullanın.
FileTable oluşturmak için gereksinimler ve kısıtlamalar
Varolan bir tabloyu FileTable'a dönüştürmek için değiştiremezsiniz.
Daha önce veritabanı düzeyinde belirtilen üst dizinin null olmayan bir değeri olmalıdır. Veritabanı düzeyinde dizini belirtme hakkında bilgi için bkz. FileTable önkoşullarını etkinleştirme.
FileTable bir FILESTREAM sütunu içerdiğinden FileTable geçerli bir FILESTREAM dosya grubu gerektirir. İsteğe bağlı olarak, FileTable oluşturma komutunun
CREATE TABLEbir parçası olarak geçerli bir FILESTREAM dosya grubu belirtebilirsiniz. Bir dosya grubu belirtmezseniz, FileTable veritabanı için varsayılan FILESTREAM dosya grubunu kullanır. Veritabanında FILESTREAM dosya grubu yoksa bir hata oluşur....
CREATE TABLEdeyimininAS FILETABLEbir parçası olarak tablo kısıtlaması oluşturamazsınız. Ancak kısıtlamayı daha sonra birALTER TABLEdeyim kullanarak ekleyebilirsiniz.tempdbveritabanında veya herhangi bir diğer sistem veritabanında FileTable oluşturamazsınız.FileTable'i geçici tablo olarak oluşturamazsınız.
FileTable'da değişiklik
FileTable önceden tanımlanmış ve sabit bir şemaya sahip olduğundan, sütunlarını ekleyemez veya değiştiremezsiniz. Ancak, bir FileTable'a özel dizinler, tetikleyiciler, kısıtlamalar ve diğer seçenekler ekleyebilirsiniz.
Sistem tanımlı kısıtlamalar da dahil olmak üzere FileTable ad alanını etkinleştirmek veya devre dışı bırakmak için deyimini kullanma ALTER TABLE hakkında bilgi için bkz. FileTable'ları Yönetme.
Transact-SQL Kullanarak FileTable Dizinini Değiştirme
Şu deyimi çağırın: ALTER TABLE ve FILETABLE_DIRECTORY için SET seçeneğine geçerli bir yeni değer sağlayın.
Example
ALTER TABLE filetable_name SET (FILETABLE_DIRECTORY = N'directory_name');
GO
SQL Server Management Studio Kullanarak FileTable Dizinini Değiştirme
Nesne Gezgini'nde FileTable'a sağ tıklayın ve Özellikler'i seçerek Tablo Özellikleri iletişim kutusunu açın. FileTable sayfasında, FileTable dizin adı için yeni bir değer girin.
FileTable'ı değiştirmek için gereksinimler ve kısıtlamalar
değerini
FILETABLE_COLLATE_FILENAMEdeğiştiremezsiniz.FileTable'ın sistem tanımlı sütunlarını değiştiremez, bırakamaz veya devre dışı bırakamazsınız.
FileTable'a yeni kullanıcı sütunları, hesaplanan sütunlar veya kalıcı hesaplanan sütunlar ekleyemezsiniz.
DosyaTablosunu Silme
Normal söz dizimini kullanarak DROP TABLE deyimiyle bir FileTable'ı silerek kaldırabilirsiniz.
Bir FileTable'ı bıraktığınızda, aşağıdaki nesneler de bırakılır:
FileTable'ın tüm sütunları ve tabloyla ilişkili dizinler, kısıtlamalar ve tetikleyiciler gibi tüm nesneler de bırakılır.
FileTable dizini ve içerdiği alt dizinler, veritabanının FILESTREAM dosyasından ve dizin hiyerarşisinden kaybolur.
FileTable'ın DROP TABLE dosya ad alanında açık dosya tanıtıcıları varsa komut başarısız olur. Açık kolları kapatma hakkında bilgi için bkz. FileTable'ları Yönetme.
FileTable oluşturduğunuzda diğer veritabanı nesneleri oluşturulur
Yeni bir FileTable oluşturduğunuzda, bazı sistem tanımlı dizinler ve kısıtlamalar da oluşturulur. Bu nesneleri değiştiremez veya bırakamazsınız; bunlar yalnızca FileTable'ın kendisi bırakıldığında kaybolur. Bu nesnelerin listesini görmek için katalog görünümünü sys.filetable_system_defined_objects sorgula.
--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 bir FileTable oluşturduğunuzda oluşturulan dizinler
Yeni bir FileTable oluşturduğunuzda, aşağıdaki sistem tanımlı dizinler de oluşturulur:
| Kolonlar | Dizin türü | Clustered |
|---|---|---|
[path_locator] ASC |
Birincil Anahtar | Hayı |
[parent_path_locator] ASC, [name] ASC |
Benzersiz | Hayı |
[stream_id] ASC |
Benzersiz | Hayı |
Yeni bir FileTable oluşturduğunuzda oluşturulan kısıtlamalar
Yeni bir FileTable oluşturduğunuzda, aşağıdaki sistem tanımlı kısıtlamalar da oluşturulur:
| Constraints | Uygulatır |
|---|---|
Aşağıdaki sütunlarda varsayılan kısıtlamalar:creation_timeis_archiveis_directoryis_hiddenis_offlineis_readonlyis_systemis_temporarylast_access_timelast_write_timepath_locatorstream_id |
Sistem tanımlı varsayılan kısıtlamalar, belirtilen sütunlar için varsayılan değerleri zorunlu kılma. |
| Kısıtlamaları denetleme | Sistem tanımlı denetim kısıtlamaları aşağıdaki gereksinimleri uygular: Geçerli dosya adları. Geçerli dosya öznitelikleri. Üst nesne bir dizin olmalıdır. Ad alanı hiyerarşisi, dosya işleme sırasında kilitlenir. |
Sistem tanımlı kısıtlamalar için adlandırma kuralı
Daha önce açıklanan sistem tanımlı kısıtlamalar şu biçimde <constraintType>_<tablename>[_<columnname>]_<uniquifier> adlandırılır:
'<constraint_type> CK (denetim kısıtlaması), DF (varsayılan kısıtlama), FK (yabancı anahtar), PK (birincil anahtar) veya UQ (benzersiz kısıtlama).
<uniquifier>, adı benzersiz hale getirmek için sistem tarafından oluşturulan bir dizedir. Bu dize FileTable adını ve benzersiz bir tanımlayıcıyı içerebilir.