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
Microsoft Fabric'te SQL veritabanı
Veritabanı nesnesine yeni bir genişletilmiş özellik ekler.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Tartışmalar
[ @name = ] N'adı'
Eklenecek özelliğin adı.
@namesysname'dir ve varsayılan değer yoktur ve olamaz NULL. Adlar boş veya alfasayısal olmayan karakter dizeleri ve ikili değerler içerebilir.
[ @value = ] değer
Özelliğiyle ilişkilendirilecek değer.
@value, varsayılan olarak NULL.
@value boyutu 7.500 bayttan fazla olamaz.
[ @level0type = ] 'level0type'
Düzey 0 nesnesinin türü.
@level0type , varsayılan değeri olan varchar(128)'dir NULL.
Geçerli girişler şunlardır:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Önemli
Düzey-1 türü nesnesinin genişletilmiş özelliğinde düzey-0 türü olarak belirtebilme USER özelliği, SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Bunun yerine düzey-0 türü olarak kullanın SCHEMA . Örneğin, bir tabloda genişletilmiş özellik tanımlarken, kullanıcı adı yerine tablonun şemasını belirtin. Düzey-0 türü olarak belirtme TYPE özelliği, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. TÜR için düzey-0 türü ve SCHEMA düzey-1 türü olarak kullanınTYPE.
[ @level0name = ] N'level0name'
Belirtilen düzey 0 nesne türünün adı.
@level0namesysname değeridir ve varsayılan değeri .NULL
[ @level1type = ] 'level1type'
Düzey 1 nesnesinin türü.
@level1type , varsayılan değeri olan varchar(128)'dir NULL.
Geçerli girişler şunlardır:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @level1name = ] N'level1name'
Belirtilen düzey 1 nesne türünün adı.
@level1namesysname değeridir ve varsayılan değeri .NULL
[ @level2type = ] 'level2type'
Düzey 2 nesnesinin türü.
@level2type , varsayılan değeri olan varchar(128)'dir NULL.
Geçerli girişler şunlardır:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @level2name = ] N'level2name'
Belirtilen düzey 2 nesne türünün adı.
@level2namesysname değeridir ve varsayılan değeri .NULL
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Açıklamalar
Genişletilmiş özellikler belirttiğinizde, SQL Server veritabanındaki nesneler üç düzeye ayrılır: 0, 1 ve 2. Düzey 0 en yüksek düzeydir ve veritabanı kapsamında yer alan nesneler olarak tanımlanır. Düzey 1 nesneleri bir şemada veya kullanıcı kapsamında, düzey 2 nesneleri ise düzey 1 nesneleri tarafından bulunur. Bu düzeylerden herhangi birinde nesneler için genişletilmiş özellikler tanımlanabilir.
Bir düzeydeki bir nesneye başvurular, sahip olan veya bunları içeren üst düzey nesnelerin adlarıyla nitelenmelidir. Örneğin, bir tablo sütununa (düzey 2) genişletilmiş özellik eklediğinizde, sütunu içeren tablo adını (düzey 1) ve tabloyu içeren şemayı (düzey 0) da belirtmeniz gerekir.
Tüm nesne türleri ve adları null ise, özellik geçerli veritabanının kendisine aittir.
Genişletilmiş özelliklere sistem nesnelerinde, kullanıcı tanımlı veritabanı kapsamı dışındaki nesnelerde veya Bağımsız Değişkenler'de geçerli girişler olarak listelenmeyen nesnelerde izin verilmez.
Bellek için iyileştirilmiş tablolarda genişletilmiş özelliklere izin verilmez.
Genişletilmiş özellikleri çoğaltma
Genişletilmiş özellikler yalnızca Yayımcı ile Abone arasındaki ilk eşitlemede çoğaltılır. İlk eşitlemeden sonra genişletilmiş bir özellik ekler veya değiştirirseniz, değişiklik çoğaltılamaz. Veritabanı nesnelerini çoğaltma hakkında daha fazla bilgi için bkz. Veri Yayımlama ve Veritabanı Nesneleri.
Şema ve kullanıcı karşılaştırması
Bir veritabanı nesnesine USER genişletilmiş özellik uyguladığınızda düzey 0 türü olarak belirtilmesi önerilmez, çünkü bu ad çözümleme belirsizliğine neden olabilir. Örneğin, kullanıcının Mary iki şemaya (Mary ve ) sahip olduğunu ve MySchemabu şemaların her ikisinin de adlı MyTablebir tablo içerdiğini varsayalım. Mary tabloya MyTable genişletilmiş bir özellik ekler ve belirtirse @level0type = 'USER', @level0name = N'Mary', genişletilmiş özelliğin hangi tabloya uygulandığı açık değildir. Geriye dönük uyumluluğu korumak için SQL Server, adlı Maryşemada bulunan tabloya özelliğini uygular.
İzinler
db_owner ve db_ddladmin sabit veritabanı rollerinin üyeleri, aşağıdaki özel durum dışında herhangi bir nesneye genişletilmiş özellikler ekleyebilir: db_ddladmin, veritabanının kendisine veya kullanıcılara veya rollere özellik ekleyemez.
Kullanıcılar, sahip oldukları nesnelere genişletilmiş özellikler ekleyebilir veya ÜZERINDE ALTER veya CONTROL izinlerine sahip olabilir.
Örnekler
A. Veritabanına genişletilmiş özellik ekleme
Aşağıdaki örnek, örnek veritabanına değeri CaptionAdventureWorks2022 Sample OLTP Database olan özellik adını AdventureWorks2025 ekler.
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Tablodaki bir sütuna genişletilmiş özellik ekleme
Aşağıdaki örnek, tablosundaki PostalCodesütununa Address bir resim yazısı özelliği ekler.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Caption', @value = 'Postal code is a required column.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
C. Sütuna giriş maskesi özelliği ekleme
Aşağıdaki örnek, tablosundaki 99999 or 99999-9999 or #### ###sütununa PostalCode bir giriş maskesi özelliği Address ekler.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
D. Dosya grubuna genişletilmiş özellik ekleme
Aşağıdaki örnek dosya grubuna PRIMARY genişletilmiş bir özellik ekler.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Primary filegroup for the AdventureWorks2022 sample database.',
@level0type = 'FILEGROUP', @level0name = N'PRIMARY';
GO
E. Şemaya genişletilmiş özellik ekleme
Aşağıdaki örnek şemaya HumanResources genişletilmiş bir özellik ekler.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Contains objects related to employees and departments.',
@level0type = 'SCHEMA', @level0name = N'HumanResources';
F. Tabloya genişletilmiş özellik ekleme
Aşağıdaki örnek şemadaki Address tabloya Person genişletilmiş bir özellik ekler.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Street address information for customers, employees, and vendors.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address';
GO
G. Role genişletilmiş özellik ekleme
Aşağıdaki örnek bir uygulama rolü oluşturur ve role genişletilmiş bir özellik ekler. değerini güçlü bir parolayla değiştirin <password> .
USE AdventureWorks2022;
GO
CREATE APPLICATION ROLE Buyers
WITH PASSWORD = '<password>';
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'Application Role for the Purchasing Department.',
@level0type = 'USER', @level0name = N'Buyers';
H. Türe genişletilmiş özellik ekleme
Aşağıdaki örnek bir türe genişletilmiş özellik ekler.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'Data type (alias) to use for any column that represents an order number. For example a sales order number or purchase order number.',
@level0type = 'SCHEMA', @level0name = N'dbo',
@level1type = 'TYPE', @level1name = N'OrderNumber';
Ben. Kullanıcıya genişletilmiş özellik ekleme
Aşağıdaki örnek bir kullanıcı oluşturur ve kullanıcıya genişletilmiş bir özellik ekler.
USE AdventureWorks2022;
GO
CREATE USER CustomApp WITHOUT LOGIN;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'User for an application.',
@level0type = 'USER', @level0name = N'CustomApp';