Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Přidá novou rozšířenou vlastnost do databázového objektu.
Syntaxe
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argumenty
[ @name = ] N'název'
Název vlastnosti, která se má přidat.
@name je sysname, bez výchozího nastavení a nemůže být NULL
. Názvy můžou obsahovat prázdné nebo jiné než alfanumerické řetězce znaků a binární hodnoty.
[ @value = ] hodnota
Hodnota, která má být přidružena k vlastnosti.
@value je sql_variants výchozím NULL
. Velikost @value nesmí být větší než 7 500 bajtů.
[ @level0type = ] 'level0type'
Typ objektu úrovně 0.
@level0type je varchar(128) s výchozím nastavením NULL
.
Platné vstupy jsou:
ASSEMBLY
CONTRACT
EVENT NOTIFICATION
FILEGROUP
MESSAGE TYPE
PARTITION FUNCTION
PARTITION SCHEME
REMOTE SERVICE BINDING
ROUTE
SCHEMA
SERVICE
USER
TRIGGER
TYPE
PLAN GUIDE
NULL
Důležité
Možnost zadat USER
jako typ úrovně 0 v rozšířené vlastnosti objektu typu level-1 bude odebrána v budoucí verzi SQL Serveru. Místo toho se používá SCHEMA
jako typ úrovně 0. Například při definování rozšířené vlastnosti v tabulce zadejte schéma tabulky místo uživatelského jména. Možnost zadat TYPE
jako typ level-0 bude odebrána v budoucí verzi SQL Serveru. Jako typ úrovně 0 a SCHEMA
jako typ úrovně 1 použijte TYPE
typ TYPE-1.
[ @level0name = ] N'level0name'
Název zadaného typu objektu úrovně 0.
@level0name je sysname s výchozím nastavením NULL
.
[ @level1type = ] 'level1type'
Typ objektu úrovně 1.
@level1type je varchar(128) s výchozím nastavením NULL
.
Platné vstupy jsou:
AGGREGATE
DEFAULT
FUNCTION
LOGICAL FILE NAME
PROCEDURE
QUEUE
RULE
SEQUENCE
SYNONYM
TABLE
TABLE_TYPE
TYPE
VIEW
XML SCHEMA COLLECTION
NULL
[ @level1name = ] N'level1name'
Název zadaného typu objektu úrovně 1.
@level1name je sysname s výchozím nastavením NULL
.
[ @level2type = ] 'level2type'
Typ objektu úrovně 2.
@level2type je varchar(128) s výchozím nastavením NULL
.
Platné vstupy jsou:
COLUMN
CONSTRAINT
EVENT NOTIFICATION
INDEX
PARAMETER
TRIGGER
NULL
[ @level2name = ] N'level2name'
Název zadaného typu objektu úrovně 2.
@level2name je sysname, s výchozím nastavením NULL
.
Hodnoty návratového kódu
0
(úspěch) nebo 1
(selhání).
Poznámky
Při zadávání rozšířených vlastností se objekty v databázi SQL Serveru klasifikují do tří úrovní: 0, 1 a 2. Úroveň 0 je nejvyšší a je definována jako objekty obsažené v oboru databáze. Objekty úrovně 1 jsou obsaženy ve schématu nebo oboru uživatele a objekty úrovně 2 jsou obsaženy objekty úrovně 1. Rozšířené vlastnosti lze definovat pro objekty na kterékoli z těchto úrovní.
Odkazy na objekt v jedné úrovni musí být kvalifikované s názvy objektů vyšší úrovně, které vlastní nebo obsahují. Když například přidáte rozšířenou vlastnost do sloupce tabulky (úroveň 2), musíte také zadat název tabulky (úroveň 1), který obsahuje sloupec a schéma (úroveň 0), které obsahuje tabulku.
Pokud jsou všechny typy objektů a názvy null, vlastnost patří do aktuální databáze samotné.
Rozšířené vlastnosti nejsou povoleny pro systémové objekty, objekty mimo obor uživatelem definované databáze nebo objekty, které nejsou uvedeny v argumentech jako platné vstupy.
Rozšířené vlastnosti nejsou povoleny u tabulek optimalizovaných pro paměť.
Replikace rozšířených vlastností
Rozšířené vlastnosti se replikují pouze v počáteční synchronizaci mezi vydavatelem a odběratelem. Pokud po počáteční synchronizaci přidáte nebo upravíte rozšířenou vlastnost, změna se nereplikuje. Další informace o replikaci databázových objektů naleznete v tématu Publikování dat a databázových objektů.
Schéma versus uživatel
Pokud u databázového objektu použijete rozšířenou vlastnost, nedoporučujeme ji zadávat USER
jako typ úrovně 0, protože to může způsobit nejednoznačnost překladu názvů. Předpokládejme například, že uživatel Mary
vlastní dvě schémata (Mary
a MySchema
) a obě tato schémata obsahují tabulku s názvem MyTable
. Pokud Mary přidá rozšířenou vlastnost do tabulky MyTable
a určí @level0type = 'USER', @level0name = N'Mary'
, není jasné, pro kterou tabulku se rozšířená vlastnost použije. Chcete-li zachovat zpětnou kompatibilitu, SQL Server použije vlastnost na tabulku obsaženou ve schématu s názvem Mary
.
Povolení
Členové db_owner a db_ddladmin pevných databázových rolí mohou přidávat rozšířené vlastnosti do libovolného objektu s následující výjimkou: db_ddladmin nemohou přidávat vlastnosti do samotné databáze ani uživatelům nebo rolím.
Uživatelé mohou přidávat rozšířené vlastnosti k objektům, které vlastní, nebo mají oprávnění ALTER nebo CONTROL.
Příklady
A. Přidání rozšířené vlastnosti do databáze
Následující příklad přidá název Caption
vlastnosti s hodnotou AdventureWorks2022 Sample OLTP Database
do AdventureWorks2022
ukázkové databáze.
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Přidání rozšířené vlastnosti do sloupce v tabulce
Následující příklad přidá vlastnost titulku do sloupce PostalCode
v tabulce Address
.
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. Přidání vlastnosti vstupní masky do sloupce
Následující příklad přidá vlastnost 99999 or 99999-9999 or #### ###
vstupní masky do sloupce PostalCode
v tabulce Address
.
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. Přidání rozšířené vlastnosti do skupiny souborů
Následující příklad přidá rozšířenou vlastnost do PRIMARY
skupiny souborů.
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. Přidání rozšířené vlastnosti do schématu
Následující příklad přidá rozšířenou vlastnost do schématu HumanResources
.
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. Přidání rozšířené vlastnosti do tabulky
Následující příklad přidá rozšířenou vlastnost do Address
tabulky ve schématu Person
.
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. Přidání rozšířené vlastnosti do role
Následující příklad vytvoří roli aplikace a přidá rozšířenou vlastnost do role. Nahraďte <password>
silným heslem.
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. Přidání rozšířené vlastnosti do typu
Následující příklad přidá rozšířenou vlastnost do typu.
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';
Já. Přidání rozšířené vlastnosti uživateli
Následující příklad vytvoří uživatele a přidá do uživatele rozšířenou vlastnost.
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';
Související obsah
- uložené procedury databázového stroje (Transact-SQL)
- sys.fn_listextendedproperty (Transact-SQL)
- sp_dropextendedproperty (Transact-SQL)
- sp_updateextendedproperty (Transact-SQL)