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.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
SQL Server'ın önceki sürümlerinden birçok sistem tablosu artık bir görünüm kümesi olarak uygulanmıştır. Bu görünümler uyumluluk görünümleri olarak bilinir ve yalnızca geriye doğru uyumluluk için tasarlanmıştır. Uyumluluk görünümleri, SQL Server 2000 (8.x)'de mevcut olan aynı meta verileri ortaya çıkarır. Ancak, uyumluluk görünümleri, SQL Server 2005 (9.x) ve sonrasında tanıtılan özelliklerle ilgili meta verileri ortaya çıkarmaz. Bu nedenle, Service Broker veya bölümleme gibi yeni özellikleri kullandığınızda, katalog görünümlerini kullanmaya geçmeniz gerekir.
Katalog görünümlerine yükseltmenin bir diğer nedeni, kullanıcı kimlikleri ve tür kimliklerini depolayan uyumluluk görünüm sütunlarının NULL döndürebileceği veya aritmetik taşmaları tetikleyebilmesidir. Bunun nedeni, 32.767'den fazla kullanıcı, grup ve rol ile 32.767 veri türü oluşturabilmenizdir. Örneğin, 32.768 kullanıcı oluşturup ardından aşağıdaki sorguyu çalıştırırsanız: SELECT * FROM sys.sysusers. ARITHABORT ON olarak ayarlanmışsa, sorgu aritmetik taşma hatası ile başarısız olur. ARITHABORT OFF olarak ayarlanmışsa, uid sütunu NULL döner.
Bu sorunları önlemek için, artan kullanıcı ve tip kimliği sayısını yönetebilen yeni katalog görünümlerini kullanmanızı öneririz. Aşağıdaki tablo, bu taşmaya maruz kalan sütunları listeler.
| Sütun adı | Uyumluluk görünümü | SQL Server 2005 görünümü |
|---|---|---|
| xusertype | syscolumns | sys.columns |
| usertype | syscolumns | sys.columns |
| Memberuid | Sistem üyeleri | sys.database_role_members |
| Groupuid | Sistem üyeleri | sys.database_role_members |
| Uıd | sysobjects | sys.objects |
| Uıd | sysprotect |
sys.database_permissions sys.server_permissions |
| Grantor | sysprotect |
sys.database_permissions sys.server_permissions |
| xusertype | Sistem tipleri | sys.types |
| Uıd | Sistem tipleri | sys.types |
| Uıd | sysusers | sys.database_principals |
| Altuid | sysusers | sys.database_principals |
| Gıd | sysusers | sys.database_principals |
| Uıd | syscacheobjects | sys.dm_exec_plan_attributes |
| Uıd | sysprocesses | sys.dm_exec_requests |
Bir kullanıcı veritabanında referans verildiğinde, SQL Server 2000'de kullanımdan kaldırıldığı açıklanan sistem tabloları ( örneğin syslanguages veya syscacheobjects) artık sistem şemasında geri uyumluluk görünümüne bağlıdır. SQL Server 2000 sistem tabloları birden fazla sürüm için kullanımdan kaldırıldığı için bu değişiklik bir bozucu değişiklik olarak kabul edilmez.
Örnek: Bir kullanıcı, SQL Server 2008'de bir kullanıcı veritabanında syslanguages adı verilen bir kullanıcı tablosu oluşturuysa, o veritabanındaki ifade SELECT * from dbo.syslanguages; kullanıcı tablosundan değerleri döndürür. SQL Server 2012'den itibaren, bu uygulama sistem görünümünden sys.syslanguages verilerini geri döndürecektir.
Ayrıca Bkz.
Katalog Görünümleri (Transact-SQL)
Sistem Tablolarını Sistem Görünümlerine Eşleme (Transact-SQL)