sp_addextendedproperty (Transact-sql)
Yeni bir genişletilmiş özellik, bir veritabanı nesnesine ekler.
Transact-SQL Sözdizim Kuralları
Sözdizimi
sp_addextendedproperty
[ @name = ] { 'property_name' }
[ , [ @value = ] { 'value' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]
[;]
Bağımsız değişkenler
[ @name ] = { 'property_name' }
Eklenecek özellik adıdır. property_nameise sysname, ve boş olamaz. Adları boş veya alfasayısal olmayan karakter dizeleri ve ikili değerler de ekleyebilirsiniz.[ @value= ] { 'value'}
Özelliği ile ilişkili değerdir. valueise sql_variant, null varsayılan. Boyutunu value7,500 bayttan fazla olamaz.[ @level0type= ] { 'level0_object_type' }
Düzey 0 nesne türüdür. level0_object_typeise varchar(128), null varsayılan.Geçerli girişleri, derleme, sözleşme, olay bildirimi, FILEGROUP, ileti türü, Bölüm işlevi, bölüm düzeni, uzak hizmet bağlama, yol, şema, hizmet, kullanıcı, tetikleyici, türü ve boş bulunmaktadır.
Önemli Genişletilmiş özellik bir düzey 1 yazım nesnesinin bir düzey 0 yazın, gelecekteki bir sürümüne kaldırıldı olarak kullanıcı belirtme olanağı SQL Server. ŞEMA düzeyi 0 türü olarak kullanın. Örneğin, genişletilmiş özellik bir masada tanımlarken, kullanıcı adı yerine tablo şema belirtin. Yetenek düzeyi 0 tipi bir gelecek sürümünde kaldırılacak türü belirtmek için SQL Server. TÜRÜ için şema türü ve düzey 0 türü Düzey 1 türünde kullanın.
[ @level0name= ] { 'level0_object_name' }
Belirtilen düzeyi 0 nesne türü addır. level0_object_nameise sysnamenull varsayılan.[ @level1type= ] { 'level1_object_type' }
Düzey 1 nesne türüdür. level1_object_typeise varchar(128), null varsayılan. Geçerli girişleri, toplama, varsayılan, işlevi, mantıksal dosya adını, yordam, sıra, kural, eşanlamlı, tablo, table_type, türü, görünüm, xml şema koleksiyonu ve null vardır.[ @level1name= ] { 'level1_object_name' }
Belirtilen düzeyi 1 nesne türü addır. level1_object_nameise sysname, null varsayılan.[ @level2type= ] { 'level2_object_type' }
Düzey 2 nesne türüdür. level2_object_typeise varchar(128), null varsayılan. Geçerli girişleri, sütun, KISITLAMA, olay bildirimi, dizin, parametre, tetik ve null vardır.[ @level2name= ] { 'level2_object_name' }
Belirtilen düzeyi 2 nesne türü addır. level2_object_nameise sysname, null varsayılan.
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (hata)
Açıklamalar
Nesneleri genişletilmiş özelliklerini belirtmek için bir SQL Serververitabanı üç düzeyde sınıflandırılır: 0, 1 ve 2. Düzey 0 en üst düzeyde olduğunu ve veritabanı kapsamında bulunan nesneler olarak tanımlanır. Düzey 1 nesneleri bir şema veya kullanıcı kapsamında bulunan ve düzey 2 nesne düzeyi 1 nesneler tarafından bulunur. Genişletilmiş özellikler, herhangi bir bu düzeyleri nesneler için tanımlanabilir.
Bir düzey nesne başvurularını kendi ya da bunları içeren yüksek düzey nesnelerin isimleri ile kalifiye olmalıdır. Örneğin, bir tablo sütun (düzey 2) genişletilmiş özellik eklediğinizde, sütun ve tablo içeren şema (düzey 0) içeren tablonun adını (düzey 1) da belirtmeniz gerekir.
Tüm nesne türleri ve adları null ise özelliğinin geçerli veritabanına kendisine ait.
Genişletilmiş özellikler, sistem nesneleri, nesnelerin kullanıcı tanımlı veritabanı kapsam dışında veya bağımsız değişken geçerli girişler olarak listelenmeyen nesneleri verilmez.
Genişletilmiş özellikler çoğaltılıyor
Genişletilmiş özellikler, yalnızca Publisher ve abone arasındaki ilk eşitleme olarak çoğaltılır. Veya genişletilmiş özellik başlangıç eşitlemesi sonra değişikliğin çoğaltılmaz. Veritabanı nesneleri çoğaltma hakkında daha fazla bilgi için bkz: Verileri ve veritabanı nesnelerini Yayımla.
Şema vs.Kullanıcı
Genişletilmiş özellik bir veritabanı nesnesine uyguladığınızda bu ad çözünürlüğü belirsizlik neden olabilir çünkü kullanıcı düzeyi 0 türü olarak belirtme önermiyoruz. Örneğin, kullanıcı Mary sahibi iki şemaları varsayılmaktadır ( Mary ve MySchema) adlı bir tablo hem bu şemaları içerir MyTable. Mary genişletilmiş özellik tablosuna ekler, MyTableve level0type @ n'user =', Mary @ level0name =, temizlemek için hangi tablo Genişletilmiş özellik uygulanan değil. Geriye dönük uyumluluğu için SQL Serveradlı şemada bulunan tablo özelliği geçerli olacak Mary.
İzinler
Üyeleri db_ownerve db_ddladminsabit veritabanı rolleri aşağıdaki özel durum herhangi bir nesnenin Genişletilmiş özellikleri ekleyebilirsiniz: db_ddladminÖzellikleri veritabanına veya kullanıcılar veya roller için ekleyemezsiniz.
Kullanıcılar, kendi ya da alter veya Denetim izinleriniz nesnelere genişletilmiş özellikler ekleyebilirsiniz.
Örnekler
A.Bir veritabanı genişletilmiş özellik ekleme
Aşağıdaki örnek, özellik adını ekler 'Caption'değeri ile 'AdventureWorks2012 Sample OLTP Database'için AdventureWorks2012örnek veritabanı.
USE AdventureWorks2012;
GO
--Add a caption to the AdventureWorks2012 Database object itself.
EXEC sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2012 Sample OLTP Database';
USE AdventureWorks2012;
GO
--Add a caption to the AdventureWorks2012 Database object itself.
EXEC sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2012 Sample OLTP Database';
B.Bir tablodaki sütun genişletilmiş özellik ekleme
Aşağıdaki örnek bir resim yazısı özelliği sütun ekler PostalCodetablo Address.
USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty
@name = N'Caption',
@value = 'Postal code is a required column.',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address',
@level2type = N'Column', @level2name = 'PostalCode';
GO
USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty
@name = N'Caption',
@value = 'Postal code is a required column.',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address',
@level2type = N'Column', @level2name = 'PostalCode';
GO
C.Bir sütun için bir giriş maskesi özellik ekleme
Aşağıdaki örnek, bir giriş maskesi özelliği ekler '99999 or 99999-9999 or #### ###' sütun PostalCodetabloya Address.
USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address',
@level2type = N'Column',@level2name = 'PostalCode';
GO
USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
@level0type = N'Schema', @level0name = 'Person',
@level1type = N'Table', @level1name = 'Address',
@level2type = N'Column',@level2name = 'PostalCode';
GO
D.Bir filegroup için genişletilmiş özellik ekleme
Aşağıdaki örnek, genişletilmiş özellik için ekler PRIMARYfilegroup.
USE AdventureWorks2012;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary filegroup for the AdventureWorks2012 sample database.',
@level0type = N'FILEGROUP', @level0name = 'PRIMARY';
GO
USE AdventureWorks2012;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary filegroup for the AdventureWorks2012 sample database.',
@level0type = N'FILEGROUP', @level0name = 'PRIMARY';
GO
E.Bir şema genişletilmiş özellik ekleme
Aşağıdaki örnek, genişletilmiş özellik için ekler HumanResourcesşema.
USE AdventureWorks2012;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Contains objects related to employees and departments.',
@level0type = N'SCHEMA',
@level0name = 'HumanResources';
USE AdventureWorks2012;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Contains objects related to employees and departments.',
@level0type = N'SCHEMA',
@level0name = 'HumanResources';
F.Bir tablo Genişletilmiş özellik ekleme
Aşağıdaki örnek, genişletilmiş özellik için ekler Addressiçinde masa Personşema.
USE AdventureWorks2012;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Street address information for customers, employees, and vendors.',
@level0type = N'SCHEMA', @level0name = 'Person',
@level1type = N'TABLE', @level1name = 'Address';
GO
USE AdventureWorks2012;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Street address information for customers, employees, and vendors.',
@level0type = N'SCHEMA', @level0name = 'Person',
@level1type = N'TABLE', @level1name = 'Address';
GO
G.Bir rol Genişletilmiş özellik ekleme
Aşağıdaki örnek, uygulama rolü oluşturur ve genişletilmiş özellik rolü ekler.
USE AdventureWorks2012;
GO
CREATE APPLICATION ROLE Buyers
WITH Password = '987G^bv876sPY)Y5m23';
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'Application Role for the Purchasing Department.',
@level0type = N'USER',
@level0name = 'Buyers';
USE AdventureWorks2012;
GO
CREATE APPLICATION ROLE Buyers
WITH Password = '987G^bv876sPY)Y5m23';
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'Application Role for the Purchasing Department.',
@level0type = N'USER',
@level0name = 'Buyers';
H.Bir tür için genişletilmiş özellik ekleme
Aşağıdaki örnek, bir türü için genişletilmiş özellik ekler.
USE AdventureWorks2012;
GO
EXEC 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 = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TYPE',
@level1name = N'OrderNumber';
USE AdventureWorks2012;
GO
EXEC 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 = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TYPE',
@level1name = N'OrderNumber';
I.Bir kullanıcı için genişletilmiş özellik ekleme
Aşağıdaki örnek, bir kullanıcı oluşturur ve kullanıcıya genişletilmiş özellik ekler.
USE AdventureWorks2012;
GO
CREATE USER CustomApp WITHOUT LOGIN ;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'User for an application.',
@level0type = N'USER',
@level0name = N'CustomApp';
USE AdventureWorks2012;
GO
CREATE USER CustomApp WITHOUT LOGIN ;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'User for an application.',
@level0type = N'USER',
@level0name = N'CustomApp';
Ayrıca bkz.
Başvuru
Veritabanı Altyapısı depolanan yordamlar (Transact-sql)
sys.Fn_listextendedproperty (Transact-sql)