Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Lägger till en ny utökad egenskap i ett databasobjekt.
Transact-SQL syntaxkonventioner
Syntax
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argumentpunkter
[ @name = ] N'namn'
Namnet på den egenskap som ska läggas till.
@name är sysname, utan standard och kan inte vara NULL. Namn kan innehålla tomma eller icke-alfanumeriska teckensträngar och binära värden.
[ @value = ] värde
Värdet som ska associeras med egenskapen.
@value är sql_variant, med standardvärdet NULL. Storleken på @value får inte vara mer än 7 500 byte.
[ @level0type = ] 'level0type'
Typ av nivå 0-objekt.
@level0type är varchar(128), med standardvärdet NULL.
Giltiga indata är:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Viktigt!
Möjligheten att ange USER som en nivå-0-typ i en utökad egenskap för ett objekt av typen level-1 tas bort i en framtida version av SQL Server. Använd SCHEMA som nivå-0-typ i stället. När du till exempel definierar en utökad egenskap i en tabell anger du schemat för tabellen i stället för ett användarnamn. Möjligheten att ange TYPE som nivå-0-typ tas bort i en framtida version av SQL Server. För TYP använder du SCHEMA som nivå-0-typ och TYPE som nivå-1-typ.
[ @level0name = ] N'level0name'
Namnet på den angivna objekttypen nivå 0.
@level0name är sysname med standardvärdet NULL.
[ @level1type = ] "level1type"
Typ av objekt på nivå 1.
@level1type är varchar(128), med standardvärdet NULL.
Giltiga indata är:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @level1name = ] N'level1name'
Namnet på den angivna objekttypen nivå 1.
@level1name är sysname med standardvärdet NULL.
[ @level2type = ] 'level2type'
Typ av nivå 2-objekt.
@level2type är varchar(128), med standardvärdet NULL.
Giltiga indata är:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @level2name = ] N'level2name'
Namnet på den angivna objekttypen nivå 2.
@level2name är sysname med standardvärdet NULL.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Anmärkningar
När du anger utökade egenskaper klassificeras objekten i en SQL Server-databas i tre nivåer: 0, 1 och 2. Nivå 0 är den högsta nivån och definieras som objekt som finns i databasomfånget. Nivå 1-objekt finns i ett schema eller användaromfång och objekt på nivå 2 finns i objekt på nivå 1. Utökade egenskaper kan definieras för objekt på någon av dessa nivåer.
Referenser till ett objekt på en nivå måste vara kvalificerade med namnen på de objekt på högre nivå som äger eller innehåller dem. När du till exempel lägger till en utökad egenskap i en tabellkolumn (nivå 2) måste du också ange tabellnamnet (nivå 1) som innehåller kolumnen och schemat (nivå 0) som innehåller tabellen.
Om alla objekttyper och namn är null tillhör egenskapen själva den aktuella databasen.
Utökade egenskaper tillåts inte för systemobjekt, objekt utanför omfånget för en användardefinierad databas eller objekt som inte anges i Argument som giltiga indata.
Utökade egenskaper tillåts inte i minnesoptimerade tabeller.
Replikera utökade egenskaper
Utökade egenskaper replikeras endast i den inledande synkroniseringen mellan utgivaren och prenumeranten. Om du lägger till eller ändrar en utökad egenskap efter den inledande synkroniseringen replikeras inte ändringen. Mer information om hur du replikerar databasobjekt finns i Publicera data och databasobjekt.
Schema kontra användare
Vi rekommenderar inte att USER du anger som en nivå-0-typ när du tillämpar en utökad egenskap på ett databasobjekt, eftersom detta kan orsaka tvetydighet i namnmatchning. Anta till exempel att användaren Mary äger två scheman (Mary och MySchema), och båda dessa scheman innehåller en tabell med namnet MyTable. Om Mary lägger till en utökad egenskap i tabellen MyTable och anger @level0type = 'USER', @level0name = N'Mary', är det inte klart vilken tabell den utökade egenskapen tillämpas på. För att upprätthålla bakåtkompatibilitet tillämpar SQL Server egenskapen på tabellen som finns i schemat med namnet Mary.
Behörigheter
Medlemmar i db_owner - och db_ddladmin fasta databasroller kan lägga till utökade egenskaper i alla objekt med följande undantag: db_ddladmin kan inte lägga till egenskaper i själva databasen eller till användare eller roller.
Användare kan lägga till utökade egenskaper till objekt som de äger eller ha ALTER- eller CONTROL-behörigheter på.
Exempel
A. Lägga till en utökad egenskap i en databas
I följande exempel läggs egenskapsnamnet Caption till med värdet AdventureWorks2022 Sample OLTP Database i exempeldatabasen AdventureWorks2022 .
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Lägga till en utökad egenskap i en kolumn i en tabell
I följande exempel läggs en undertextegenskap till i kolumnen PostalCode i tabellen 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. Lägga till en indatamaskegenskap i en kolumn
I följande exempel läggs en indatamaskegenskap 99999 or 99999-9999 or #### ### till i kolumnen PostalCode i tabellen 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. Lägga till en utökad egenskap i en filgrupp
I följande exempel läggs en utökad egenskap till PRIMARY i filgruppen.
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. Lägga till en utökad egenskap i ett schema
I följande exempel läggs en utökad egenskap till i HumanResources schemat.
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. Lägga till en utökad egenskap i en tabell
I följande exempel läggs en utökad egenskap till i Address tabellen i Person schemat.
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. Lägga till en utökad egenskap i en roll
I följande exempel skapas en programroll och en utökad egenskap läggs till i rollen. Ersätt <password> med ett starkt lösenord.
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. Lägga till en utökad egenskap till en typ
I följande exempel läggs en utökad egenskap till en typ.
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';
Jag. Lägga till en utökad egenskap till en användare
I följande exempel skapas en användare och en utökad egenskap läggs till för användaren.
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';