Aracılığıyla paylaş


sp_addextendedproperty (Transact-SQL)

Yeni Genişletilmiş özellik için bir veritabanı nesnesi ekler.

Konu bağlantısı simgesiTransact-SQL sözdizimi 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_nameİş sysname ve olamaz null.Adları boş veya alfasayısal olmayan karakter dizeleri ve ikili değerler de ekleyebilirsiniz.

  • [ @value= ] { 'value'}
    ' % S'özelliği özellikile ilişkilendirilecek değerdir.valueİş sql_variant, varsayılan değer null.Boyutunu value olamaz birden fazla 7.500 bayt.

  • [ @level0type= ] { 'level0_object_type' }
    düzey 0 nesne türüdür.level0_object_typeİş varchar(128), varsayılan değer null.

    Geçerli DERLEME, sözleşme, olay bildirimi, dosya grubu, 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 null sinyalidir.

    Önemli notÖnemli

    Kullanıcı düzey 1 Object türünde bir genişletilmiş özellik düzey 0 türü, gelecekteki bir sürüm kaldırılacak şekilde belirtme olanağı SQL Server.Şema düzey 0 türü olarak kullanın.Örneğin, bir genişletilmiş özellik tablotanımlarken, kullanıcı adı yerine tablo şema belirtin.düzeytürü belirtme olanağı-0 türü, gelecekteki bir sürüm kaldırılır SQL Server.YAZIDA, düzey 1 türünde şema düzey 0 türü ve türü kullanın.

  • [ @level0name= ] { 'level0_object_name' }
    Belirtilen düzey 0 nesne türünün adıdır.level0_object_nameİş sysname Varsayılan değer null.

  • [ @level1type= ] { 'level1_object_type' }
    düzey 1 nesne türüdür.level1_object_typeİş varchar(128), varsayılan değer null.Geçerli toplam, varsayılan, işlevi, MANTIKSAL dosya adını, yordam, SIRA, kural, eş, tablo, değişkenindeki table_type, türü, görünüm, xml şema KOLEKSİYONU ve null sinyalidir.

  • [ @level1name= ] { 'level1_object_name' }
    Belirtilen düzey 1 nesne türünün adıdır.level1_object_nameİş sysname, varsayılan değer null.

  • [ @level2type= ] { 'level2_object_type' }
    düzey 2 nesne türüdür.level2_object_typeİş varchar(128), varsayılan değer null.Geçerli sütun kısıtlaması, olay bildirimi, dizin, parametre, TETİK ve null sinyalidir.

  • [ @level2name= ] { 'level2_object_name' }
    Belirtilen düzey 2 nesne türünün adıdır.level2_object_nameİş sysname, varsayılan değer null.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Açıklamalar

Nesneleri genişletilmiş özelliklerini belirtmek için bir SQL Server veritabanı üç düzeylerine sınıflandırılmış: 0, 1 ve 2.Düzey 0 en yüksek düzey ve veritabanı kapsamiçerdiği nesneler olarak tanımlanır.Düzey 1 nesneleri bir şema veya kullanıcı kapsamiçinde yer alır ve düzey 2 nesne düzey 1 nesneler tarafından yer alır.Genişletilmiş özellikler, bu düzeyleri en nesneler için tanımlanabilir.

Bir düzey bir nesneye başvuru sahibi veya bunları içeren daha yüksek düzey nesnelere adlarıyla uygun olmalıdır.Örneğin, bir tablosütun (düzey 2) genişletilmiş bir özellik eklediğinizde, tablo sütun ve şema (düzey 0) içeren tablo adı (düzey 1) da belirtmeniz gerekir.

Nesneleri ve bunların geçerli düzey 0, 1 ve 2 türlerinin tam listesi için bkz: Veritabanı nesneleri genişletilmiş özelliklerini kullanma.

Tüm nesne türleri ve adları null, özellik geçerli veritabanına kendisine ait.

Genişletilmiş özellikler, sistem nesneleri, kullanıcı tanımlı bir veritabanı kapsam dışında kalan nesneler veya bağımsız değişken geçerli girişler olarak listelenmeyen nesneleri verilmez.

Genişletilmiş özellikler çoğaltılıyor

Yayımcı ve abone arasındaki ilk eşitleme , yalnızca genişletilmiş özellikleri çoğaltılır.Eklemek veya bir genişletilmiş özellik ' % s'eşitlemeden ilk eşitlemesonra değiştirirseniz, değişiklik çoğaltılmaz.Veritabanı nesneleri çoğaltma hakkında daha fazla bilgi için bkz: Yayımlama veri ve veritabanı nesneleri.

Şema vs.Kullanıcı

Bir veritabanı nesnesi için bir genişletilmiş özellik uyguladığınızda, bu ad çözünürlüğü belirsizlik neden olabileceğinden kullanıcı düzey 0 türü belirterek önermiyoruz.Örneğin, kullanıcı Mary sahibi iki şemaları varsayalım (Mary ve MySchema) ve her ikisi de bu şemalar adlı bir tablo içeren MyTable.Mary tablogenişletilmiş bir özellik ekler,MyTable ve n'user @ level0type =', level0name @ Mary =, clear hangi tablo genişletilmiş özellik uygulanan değil ise. Geriye doğru uyumluluk sağlamak için SQL Server tablo adlı şema içerdiği özellik uygulanır Mary.Kullanıcıları ve şemaları hakkında daha fazla bilgi için bkz: Kullanıcı şeması ayrımı.

İzinler

Üyeleri db_owner ve db_ddladmin sabit veritabanı rolleri için aşağıdaki istisna ile herhangi bir nesnenin genişletilmiş özellikleri ekleyebilirsiniz: db_ddladminözellikleri veritabanına veya kullanıcılar veya roller için eklenemiyor.

Kullanıcıların kendi sahibi olduğu veya alter veya Denetim izinlerinizin olduğu nesneleri genişletilmiş özellikler ekleyebilirsiniz.Gerekli izinleri tam listesi için bkz: Veritabanı nesneleri genişletilmiş özelliklerini kullanma.

Örnekler

A.Bir veritabanı için bir genişletilmiş özellik ekleme

Aşağıdaki örnek, özellik adını ekler 'Caption' değeri 'AdventureWorks2008R2 Sample OLTP Database' için AdventureWorks2008R2 örnek veritabanı.

USE AdventureWorks2008R2;
GO
--Add a caption to the AdventureWorks2008R2 Database object itself.
EXEC sp_addextendedproperty 
@name = N'Caption', 
@value = 'AdventureWorks2008R2 Sample OLTP Database';

B.Bir tablo sütun bir genişletilmiş özellik ekleme

Aşağıdaki örnek bir resim yazısı özellik sütuneklerPostalCode tablo Address.

USE AdventureWorks2008R2;
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.Giriş maskesi özellik bir sütunekleme

Aşağıdaki örnek, bir giriş maskesi özellik ekler '99999 or 99999-9999 or #### ###' sütunPostalCode tablo Address.

USE AdventureWorks2008R2;
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.dosya grubuiçin bir genişletilmiş özellik ekleme

Aşağıdaki örnek, genişletilmiş özellik için ekler PRIMARY dosya grubu.

USE AdventureWorks2008R2;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Primary filegroup for the AdventureWorks2008R2 sample database.', 
@level0type = N'FILEGROUP', @level0name = 'PRIMARY';
GO

E.Bir şema bir genişletilmiş özellik ekleme

Aşağıdaki örnek, genişletilmiş özellik için ekler HumanResources şema.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample',
@value = N'Contains objects related to employees and departments.',
@level0type = N'SCHEMA', 
@level0name = 'HumanResources';

F.tablobir genişletilmiş özellik ekleme

Aşağıdaki örnek, genişletilmiş özellik için ekler Address tablo Person şema.

USE AdventureWorks2008R2;
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.Role bir genişletilmiş özellik ekleme

Aşağıdaki örnek, bir uygulama rolü oluşturur ve rol için genişletilmiş bir özellik ekler.

USE AdventureWorks2008R2; 
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 bir genişletilmiş özellik ekleme

Aşağıdaki örnek, bir tür için genişletilmiş bir özellik ekler.

USE AdventureWorks2008R2; 
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';

Ö.Bir kullanıcıya bir genişletilmiş özellik ekleme

Aşağıdaki örnek, bir kullanıcı oluşturur ve kullanıcıya bir genişletilmiş özellik ekler.

USE AdventureWorks2008R2; 
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';