Udostępnij za pośrednictwem


sp_addextendedproperty (języka Transact-SQL)

Dodaje nowy rozszerzone właściwość obiektu w bazie danych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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' } 
                        ] 
                ]
        ] 
    ] 
[;]

Argumenty

  • [ @name ] = { 'property_name' }
    Jest nazwą właściwość mają zostać dodane.property_namejest sysname i nie może być NULL.Nazwy mogą również zawierać znaków innych niż alfanumeryczne lub puste ciągi i wartości binarnych.

  • [ @value= ] { 'value'}
    Jest to wartość ma być skojarzony z właściwość.valuejest sql_variant, domyślna wartość NULL.Rozmiar value nie może być więcej niż 7500 bajtów.

  • [ @level0type= ] { 'level0_object_type' }
    Jest to typ obiektu poziom 0.level0_object_typejest varchar(128), domyślna wartość NULL.

    Prawidłowe dane wejściowe są zestawu, umowy, powiadomienie o zdarzeniu, grupa plików, typ wiadomości, funkcja PARTYCJI, schemat PARTYCJI, powiązania usługi zdalnego, trasy, SCHEMATU, usługi, użytkownika, WYZWALACZ, typ i NULL.

    Ważna informacjaWażne:

    Możliwość określenia użytkownika, jak typ poziom 0 w rozszerzonej właściwość obiektu typu poziom 1 zostaną usunięte w przyszłej wersja programu SQL Server.Użyj SCHEMATU jako typ poziom 0.Na przykład podczas definiowania rozszerzonych właściwość w tabela, należy określić schemat tabela zamiast nazwy użytkownika.Możliwość określenia typu jako poziom-0 typ zostaną usunięte w przyszłej wersja programu SQL Server.Dla typu należy użyć SCHEMATU jako typ poziom 0 i typ jako typ poziom 1.

  • [ @level0name= ] { 'level0_object_name' }
    Jest nazwą typu obiektu poziom 0 określonego.level0_object_namejest sysname Domyślna wartość NULL.

  • [ @level1type= ] { 'level1_object_type' }
    Jest to typ obiektu poziom 1.level1_object_typejest varchar(128), domyślna wartość NULL.Nieprawidłowe dane wejściowe są agregacji, domyślny, funkcja, nazwa pliku LOGICZNEGO, procedury, kolejki, reguły, SYNONIM, tabeli, TABLE_TYPE, typu, WIDOKU, KOLEKCJI SCHEMATU XML i NULL.

  • [ @level1name= ] { 'level1_object_name' }
    Jest nazwą typu obiektu poziom 1 określonego.level1_object_namejest sysname, domyślna wartość NULL.

  • [ @level2type= ] { 'level2_object_type' }
    Jest to typ obiektu poziom 2.level2_object_typejest varchar(128), domyślna wartość NULL.Prawidłowe dane wejściowe są kolumny, ograniczenie, powiadomienie o zdarzeniu, indeks, PARAMETR, WYZWALACZ i wartości NULL.

  • [ @level2name= ] { 'level2_object_name' }
    Jest nazwą typu obiektu poziom 2 określonego.level2_object_namejest sysname, domyślna wartość NULL.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Uwagi

Do określania właściwości rozszerzone, obiekty w SQL Server bazy danych dzieli się na trzy poziomy: 0, 1 i 2.Poziom 0 jest najwyższy poziom i jest definiowana jako obiekty, które są zawarte w bazie danych zakres.Obiekty poziomu 1 są zawarte w schematu lub użytkownika zakresi poziom 2 obiekty są zawarte przez obiekty poziom 1.Właściwości rozszerzone można zdefiniować dla obiektów w dowolnym z tych poziomów.

Odwołania do obiektu w jeden poziom musi być kwalifikowany z nazwami wyższy poziom obiektów, lub je zawierają.Na przykład po dodaniu rozszerzonych właściwość w tabelakolumna (poziom 2), należy określić również nazwę tabela (poziom 1) zawierający schematu (poziom 0) i kolumna zawierającej tabela.

Aby uzyskać pełną listę obiektów i ich typy prawidłowy poziom 0, 1 i 2, zobacz Używanie rozszerzonych właociwooci obiektów bazy danych.

Jeśli wszystkie typy obiektów i nazwy są null, właściwość należy do bieżącej bazy danych sam.

Właściwości rozszerzone są niedozwolone na obiekty systemowe, obiekty poza zakres bazy danych zdefiniowanych przez użytkownika lub obiekty niewymienionych w argumentach jako prawidłowe dane wejściowe.

Replikowanie właściwości rozszerzone

Właściwości rozszerzone są replikowane tylko w synchronizacja początkowa między Wydawca i subskrybenta.W przypadku dodawania lub modyfikowania rozszerzone właściwość po synchronizacja początkowazmiana nie jest replikowana.Aby uzyskać więcej informacji na temat replikowania obiektów bazy danych, zobacz Publikowanie danych i obiektów bazy danych.

W stosunku do schematu.Użytkownik

Nie zaleca się określenie użytkownika jako typ poziom 0 po zastosowaniu rozszerzonej właściwość do obiektu bazy danych, ponieważ może to powodować niejednoznaczność rozpoznawania nazwy.Załóżmy na przykład, dwa schematy właścicielem jest użytkownik Mary (Mary i MySchema) i te schematy zarówno zawiera tabela o nazwie MyTable.Jeśli Maria dodaje rozszerzonych właściwość tabela MyTable i określa @ level0type = N'USER', @ level0name = Maria, nie jest Wyczyść, aby tabela rozszerzonych właściwość jest stosowana.Aby zachować zgodność ze starszymi wersjami SQL Server będą miały zastosowanie właściwość do tabela zawarte w schemacie o nazwie Mary.Aby uzyskać więcej informacji o użytkownikach i schematów, zobacz Oddzielanie schematu użytkownika.

Uprawnienia

Członkowie db_owner i db_ddladmin do dowolnego obiektu, z wyjątkiem następujących ról stałej bazy danych można dodać właściwości rozszerzone: db_ddladminnie można dodać właściwości do samej bazy danych lub do użytkowników lub role.

Użytkownicy mogą dodawać właściwości rozszerzone do obiektów, które są jego własnością lub mają uprawnienia do zmiany lub FORMANTU na.Aby uzyskać pełną listę wymaganych uprawnień, zobacz Używanie rozszerzonych właociwooci obiektów bazy danych.

Przykłady

A.Dodawanie rozszerzone właściwość do bazy danych

W następującym przykładzie dodano nazwę właściwość 'Caption' o wartości 'AdventureWorks2008R2 Sample OLTP Database' do AdventureWorks2008R2 przykładowej bazy danych.

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

B.Dodawanie rozszerzonych właściwość kolumna w tabela

W następującym przykładzie dodano podpis właściwość do kolumna PostalCode w tabela 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.Dodawanie maski wprowadzania właściwość kolumna

W następującym przykładzie dodano maski wprowadzania właściwość "99999 or 99999-9999 or #### ###' w kolumna PostalCode w tabela 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.Dodawanie rozszerzone właściwość do grupa plików

W następującym przykładzie dodano rozszerzone właściwość do PRIMARY grupa plików.

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.Dodawanie rozszerzone właściwość do schematu

W następującym przykładzie dodano rozszerzone właściwość do HumanResources schematu.

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.Dodawanie rozszerzonych właściwość tabela

W następującym przykładzie dodano rozszerzone właściwość do Address tabela w Person schematu.

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.Dodawanie rozszerzone właściwość do roli

Poniższy przykład tworzy rola aplikacji i dodaje do roli rozszerzonych właściwość .

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.Dodanie do typu rozszerzone właściwość

W następującym przykładzie dodano rozszerzone właściwość typu.

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

I.Dodawanie rozszerzone właściwość do użytkownika

W poniższym przykładzie użytkownik tworzy i dodaje rozszerzone właściwość użytkownika.

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