Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Új kiterjesztett tulajdonságot ad hozzá egy adatbázis-objektumhoz.
Transact-SQL szintaxis konvenciók
Szemantika
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Érvek
[ @name = ] N'név'
A hozzáadni kívánt tulajdonság neve.
@namea sysname, nincs alapértelmezett, és nem lehet NULL. A nevek tartalmazhatnak üres vagy nem alfanumerikus karaktersztringeket és bináris értékeket.
[ @value = ] érték
A tulajdonsághoz társítandó érték.
@value az alapértelmezett NULL. A @value mérete nem haladhatja meg a 7500 bájtot.
[ @level0type = ] 'level0type'
A 0. szintű objektum típusa.
@level0typea varchar(128), alapértelmezett értéke NULL.
Az érvényes bemenetek a következők:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Fontos
Az 1. szintű objektum kiterjesztett tulajdonságában 0. szintű típusként való megadásának USER lehetősége az SQL Server egy későbbi verziójában törlődik. Használja SCHEMA inkább 0. szintű típusként. Ha például egy tábla kiterjesztett tulajdonságát definiálja, a felhasználónév helyett adja meg a tábla sémáját. A 0. szintű típus megadásának TYPE lehetősége az SQL Server egy későbbi verziójában megszűnik. TÍPUS esetén a 0. szint típusaként és SCHEMA az 1. szint típusaként kell használniTYPE.
[ @level0name = ] N'level0name'
A megadott 0. szintű objektumtípus neve.
@level0namea sysname, alapértelmezés szerint NULLa .
[ @level1type = ] 'level1type'
Az 1. szintű objektum típusa.
@level1typea varchar(128), alapértelmezés szerint NULL.
Az érvényes bemenetek a következők:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @level1name = ] N'level1name'
A megadott 1. szintű objektumtípus neve.
@level1namea sysname, alapértelmezés szerint NULLa .
[ @level2type = ] 'level2type'
A 2. szintű objektum típusa.
@level2typea varchar(128), alapértelmezett értéke NULL.
Az érvényes bemenetek a következők:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @level2name = ] N'level2name'
A megadott 2. szintű objektumtípus neve.
@level2namea sysname, alapértelmezés szerint NULLa .
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Megjegyzések
Kiterjesztett tulajdonságok megadásakor az SQL Server-adatbázisban lévő objektumok három szintre vannak besorolva: 0, 1 és 2. A 0. szint a legmagasabb szint, és az adatbázis hatókörében található objektumokként van definiálva. Az 1. szintű objektumok egy sémában vagy felhasználói hatókörben találhatók, a 2. szintű objektumokat pedig az 1. szintű objektumok tartalmazzák. Ezen szintek bármelyikében definiálhatók kiterjesztett tulajdonságok az objektumokhoz.
Az egy szinten lévő objektumokra mutató hivatkozásokat a tulajdonos vagy azt tartalmazó magasabb szintű objektumok nevével kell minősíteni. Ha például bővített tulajdonságot ad hozzá egy táblaoszlophoz (2. szint), meg kell adnia azt a táblanevet is (1. szint), amely tartalmazza az oszlopot és a táblát tartalmazó sémát (0. szint).
Ha az összes objektumtípus és név null értékű, a tulajdonság maga az aktuális adatbázishoz tartozik.
A kiterjesztett tulajdonságok nem engedélyezettek a rendszerobjektumokon, a felhasználó által definiált adatbázis hatókörén kívüli objektumokon vagy az argumentumokban nem szereplő objektumokon érvényes bemenetként.
A kiterjesztett tulajdonságok nem engedélyezettek a memóriaoptimalizált táblákban.
Kiterjesztett tulajdonságok replikálás
A kiterjesztett tulajdonságok csak a Publisher és az Előfizető közötti kezdeti szinkronizálás során replikálódnak. Ha a kezdeti szinkronizálás után hozzáad vagy módosít egy kiterjesztett tulajdonságot, a rendszer nem replikálja a módosítást. Az adatbázis-objektumok replikálásáról további információt az Adatok és adatbázisobjektumok közzététele című témakörben talál.
Séma és felhasználó
Nem javasoljuk, hogy 0. szintű típusként adjon meg USER , ha kiterjesztett tulajdonságot alkalmaz egy adatbázis-objektumra, mert ez a névfeloldás kétértelműségét okozhatja. Tegyük fel például, hogy a felhasználó Mary két sémával rendelkezik (Mary és MySchema), és ezek a sémák egy nevű MyTabletáblát tartalmaznak. Ha Mary hozzáad egy kiterjesztett tulajdonságot a táblához MyTable , és megadja @level0type = 'USER', @level0name = N'Mary', nem egyértelmű, hogy melyik táblára alkalmazza a kiterjesztett tulajdonságot. A visszamenőleges kompatibilitás fenntartása érdekében az SQL Server a tulajdonságot a nevesített Marysémában található táblára alkalmazza.
Engedélyek
A db_owner és db_ddladmin rögzített adatbázis-szerepkörök tagjai kiterjesztett tulajdonságokat adhatnak bármely objektumhoz a következő kivétellel: db_ddladmin nem adhat hozzá tulajdonságokat magához az adatbázishoz, sem a felhasználókhoz vagy szerepkörökhöz.
A felhasználók kiterjesztett tulajdonságokat adhatnak a tulajdonában lévő objektumokhoz, vagy alter vagy CONTROL engedélyekkel rendelkeznek.
Példák
Egy. Kiterjesztett tulajdonság hozzáadása adatbázishoz
Az alábbi példa hozzáadja a tulajdonság nevét Caption a AdventureWorks2022 Sample OLTP Database mintaadatbázishoz AdventureWorks2025 .
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Kiterjesztett tulajdonság hozzáadása egy tábla oszlopához
Az alábbi példa egy felirattulajdonságot ad hozzá a táblázat PostalCodeoszlopáhozAddress.
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. Beviteli maszk tulajdonság hozzáadása oszlophoz
Az alábbi példa egy beviteli maszk tulajdonságot 99999 or 99999-9999 or #### ### ad hozzá a táblázat PostalCodeoszlopáhozAddress.
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. Kiterjesztett tulajdonság hozzáadása fájlcsoporthoz
Az alábbi példa egy kiterjesztett tulajdonságot ad hozzá a PRIMARY fájlcsoporthoz.
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. Kiterjesztett tulajdonság hozzáadása sémához
Az alábbi példa egy kiterjesztett tulajdonságot ad hozzá a HumanResources sémához.
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. Kiterjesztett tulajdonság hozzáadása táblához
Az alábbi példa egy kiterjesztett tulajdonságot ad hozzá a Address séma táblázatához 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. Kiterjesztett tulajdonság hozzáadása szerepkörhöz
Az alábbi példa létrehoz egy alkalmazásszerepkört, és hozzáad egy kiterjesztett tulajdonságot a szerepkörhöz. Cserélje le <password> erős jelszóra.
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. Kiterjesztett tulajdonság hozzáadása típushoz
Az alábbi példa egy kiterjesztett tulajdonságot ad hozzá egy típushoz.
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';
Én. Kiterjesztett tulajdonság hozzáadása egy felhasználóhoz
Az alábbi példa létrehoz egy felhasználót, és hozzáad egy kiterjesztett tulajdonságot a felhasználóhoz.
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';