Dizinler ve FileTables yolları ile çalışmak
Dosyaları FileTables saklanacağı dizin yapısını açıklar.
Bu Konuda
I want to...
Dizinler ve FileTables yolları ile çalışmak
Göreceli yollar için taşınabilir kodu kullanın
Daha fazla bilgi edinin
Önemli kısıtlamalar
İç içe geçme düzeyi
Tam yol adı uzunluğu
Bir FileTable içinde saklanan bir öğenin tam yol
Kök dizinler örneği, veritabanı ve FileTable düzeyleri semantiği
İs_directory sütun FileTable şema
Sanal ağ adları (VNNs) AlwaysOn kullanılabilirlik grupları ile kullanma
Nasıl yapılır: dizinler ve FileTables yollarında çalışmak
FileTable dizinler çalışmak için aşağıdaki 3 işlevleri kullanabilirsiniz Transact-SQL:
Bu sonucu almak için |
Bu işlevi kullanma |
---|---|
Kök düzeyindeki unc yolu veya geçerli veritabanı için belirli bir FileTable olsun. |
|
Bir dosya veya dizin içinde bir FileTable için mutlak veya göreceli bir unc yol almak. |
|
Yol Bulucu Kımlığı değerini belirtilen dosya ya da dizin içinde bir FileTable yanında-mek şartıyla yol alın. |
[YUKARI]
Nasıl yapılır: taşınabilir kod için göreli yolları kullanma
Kod ve uygulama geçerli bilgisayar ve veritabanı bağımsız tutmak için mutlak dosya yolları kullanan kod yazma kaçının. Bunun yerine, tam yolu bir dosya için zamanında kullanarak elde FileTableRootPath (Transact-sql)ve GetFileNamespacePath (Transact-sql)) birlikte, aşağıdaki örnekte gösterildiği gibi işlev. Varsayılan olarak, GetFileNamespacePathişlevi göreli yolu veritabanı dosyasının kök yolunda.
USE database_name;
DECLARE @root nvarchar(100);
DECLARE @fullpath nvarchar(1000);
SELECT @root = FileTableRootPath();
SELECT @fullpath = @root + file_stream.GetFileNamespacePath()
FROM filetable_name
WHERE name = N'document_name';
PRINT @fullpath;
GO
[YUKARI]
Önemli kısıtlamalar
İç içe geçme düzeyi
Önemli |
---|
15'den fazla alt düzeylerinin FileTable dizinde depolayamaz. Sonra 15 alt düzeylerinin depoladığınızda, çünkü bu dosyalar ek bir düzeyi temsil edeceğini en alt düzeye dosyalarını içeremez. |
Tam yol adı uzunluğu
Önemli |
---|
ntfs dosya sistemi, Windows kabuğu ve çoğu Windows API'leri 260 karakter sınırı çok uzun yol adlarını destekler. Bu nedenle tam yol adı 260 karakterden uzun olduğundan görüntülemek ya da Windows Explorer veya diğer birçok Windows uygulamalarını açma Transact-sql kullanarak bir FileTable dosya hiyerarşi içinde dosya oluşturmak mümkündür. Ancak bu dosyalar Transact-sql kullanarak erişmeye devam edebilirsiniz. |
Bir FileTable içinde saklanan bir öğenin tam yol
Bir dosya ya da dizin içinde bir FileTable depolanan tam yolunu aşağıdaki öğelerle başlar:
FILESTREAM dosya g/Ç erişim etkin pay SQL Serverörnek düzeyi.
DIRECTORY_NAME belirtilen veritabanı düzeyinde.
FILETABLE_DIRECTORY FileTable düzeyinde.
Elde edilen hiyerarşi şuna benzer:
\\<machine>\<instance-level FILESTREAM share>\<database-level directory>\<FileTable directory>\
Bu dizin sıradüzenindeki FileTable'nın dosyası ad alanı kökünde oluşturur. Bu dizin hiyerarşisi altında FileTable için FILESTREAM veri dosyaları ve alt dizinlerindeki dosyaları ve alt dizinleri de içerebilen olarak depolanır.
Örnek düzeyi FILESTREAM payı altında oluşturulan dizin hiyerarşisinde bir sanal dizin sıradüzeni olduğunu akılda tutmak önemlidir. Bu hiyerarşi depolanır SQL Serververitabanı ve ntfs dosya sistemi fiziksel olarak temsil değil. Dosya ve dizinleri FILESTREAM paylaşım ve içerdiği FileTables tüm işlemler el konulan ve tarafından bir SQL Serverbileşen gömülü dosya sistemi.
[YUKARI]
Kök dizinler örneği, veritabanı ve FileTable düzeyleri semantiği
Bu dizin sıradüzenindeki aşağıdaki semantiği gözlemler:
Örnek düzeyi FILESTREAM paylaşım yönetici tarafından yapılandırılan ve sunucu özelliği olarak depolanır. Sen-ebilmek rename bu paylaşımı kullanarak SQL ServerYapılandırma Yöneticisi. Yeniden adlandırma işlemini sunucu yeniden başlatılıncaya kadar etkili olmaz.
Veritabanı düzeyinde DIRECTORY_NAME yeni bir veritabanı oluşturduğunuzda varsayılan olarak null olur. Yönetici ayarlayabilir veya bu adı kullanarak değiştirmek alter database deyimi. Adı (büyük küçük harf duyarlı karşılaştırma içinde) benzersiz olması gerekir Bu durumda.
Genellikle size FILETABLE_DIRECTORY adının bir parçası olarak create table bir FileTable oluşturduğunuzda deyim. Sen-ebilmek değişmek bu adı kullanarak alter table komut.
Bu kök dizinlere dosya g/Ç işlemlerini yeniden adlandıramazsınız.
Bu kök dizinler, özel dosya açılamıyor.
[YUKARI]
İs_directory sütun FileTable şema
Aşağıdaki tablo arasındaki etkileşim açıklar is_directory sütun ve file_stream bir FileTable FILESTREAM veri içeren bir sütun.
is_directory değer |
file_stream değer |
Davranış |
FALSE |
NULL |
Bu sistem tanımlı bir kısıtlama tarafından yakalanmış olması, geçersiz bir kombinasyonudur. |
FALSE |
<değer> |
Madde bir dosyayı temsil eder. |
GERÇEK |
NULL |
Öğe dizini temsil eder. |
GERÇEK |
<değer> |
Bu sistem tanımlı bir kısıtlama tarafından yakalanmış olması, geçersiz bir kombinasyonudur. |
[YUKARI]
Sanal ağ adları (VNNs) AlwaysOn kullanılabilirlik grupları ile kullanma
Ne zaman FILESTREAM veya FileTable veri içeren veritabanını bir AlwaysOn kullanılabilirlik grubuna ait:
FILESTREAM ve FileTable işlevleri, kabul veya sanal ağ adları (VNNs) bilgisayar adları yerine döner. Bu işlevler hakkında daha fazla bilgi için bkz: FILESTREAM ve FileTable işlevleri (Transact-sql).
Tüm erişim FILESTREAM veya FileTable veri API'leri dosya sistemi üzerinden VNNs yerine bilgisayar adlarını kullanmanız gerekir. Daha fazla bilgi için, bkz. FILESTREAM ve FileTable AlwaysOn kullanılabilirlik gruplar (SQL Server).
[YUKARI]
Ayrıca bkz.
Kavramlar
Önkoşullar için etkinleştir FileTable
Create, Alter ve FileTables bırak