Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Hiermee voegt u een nieuwe uitgebreide eigenschap toe aan een databaseobject.
Transact-SQL syntaxis-conventies
Syntaxis
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argumenten
[ @name = ] N'naam'
De naam van de eigenschap die moet worden toegevoegd.
@name is sysname, zonder standaard, en kan dat niet zijn NULL. Namen kunnen lege of niet-alfanumerieke tekenreeksen en binaire waarden bevatten.
[ @value = ] waarde
De waarde die moet worden gekoppeld aan de eigenschap.
@value is sql_variant, met een standaardwaarde van NULL. De grootte van @value mag niet meer dan 7500 bytes zijn.
[ @level0type = ] 'level0type'
Het type object op niveau 0.
@level0type is varchar(128), met een standaardwaarde van NULL.
Geldige invoer is:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Belangrijk
De mogelijkheid om op te geven USER als een type op niveau 0 in een uitgebreide eigenschap van een typeobject op niveau 1 wordt verwijderd in een toekomstige versie van SQL Server. Gebruik SCHEMA in plaats daarvan als type level-0. Als u bijvoorbeeld een uitgebreide eigenschap voor een tabel definieert, geeft u het schema van de tabel op in plaats van een gebruikersnaam. De mogelijkheid om op te geven TYPE als type niveau 0 wordt verwijderd in een toekomstige versie van SQL Server. Gebruik SCHEMA voor TYPE als het type level-0 en TYPE als het type level-1.
[ @level0name = ] N'level0name'
De naam van het opgegeven objecttype niveau 0.
@level0name is sysname, met een standaardwaarde van NULL.
[ @level1type = ] 'level1type'
Het type object op niveau 1.
@level1type is varchar(128), met een standaardwaarde van NULL.
Geldige invoer is:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @level1name = ] N'level1name'
De naam van het objecttype niveau 1 dat is opgegeven.
@level1name is sysname, met een standaardwaarde van NULL.
[ @level2type = ] 'level2type'
Het type object op niveau 2.
@level2type is varchar(128), met een standaardwaarde van NULL.
Geldige invoer is:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @level2name = ] N'level2name'
De naam van het objecttype niveau 2 dat is opgegeven.
@level2name is sysname, met een standaardwaarde van NULL.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Opmerkingen
Wanneer u uitgebreide eigenschappen opgeeft, worden de objecten in een SQL Server-database geclassificeerd in drie niveaus: 0, 1 en 2. Niveau 0 is het hoogste niveau en wordt gedefinieerd als objecten die zich in het databasebereik bevinden. Objecten op niveau 1 bevinden zich in een schema of gebruikersbereik en objecten op niveau 2 zijn opgenomen in objecten op niveau 1. Uitgebreide eigenschappen kunnen worden gedefinieerd voor objecten op elk van deze niveaus.
Verwijzingen naar een object op één niveau moeten worden gekwalificeerd met de namen van de objecten op een hoger niveau die eigenaar zijn van of die objecten bevatten. Wanneer u bijvoorbeeld een uitgebreide eigenschap toevoegt aan een tabelkolom (niveau 2), moet u ook de tabelnaam (niveau 1) opgeven die de kolom en het schema (niveau 0) bevat dat de tabel bevat.
Als alle objecttypen en namen null zijn, behoort de eigenschap tot de huidige database zelf.
Uitgebreide eigenschappen zijn niet toegestaan voor systeemobjecten, objecten buiten het bereik van een door de gebruiker gedefinieerde database of objecten die niet worden vermeld in Argumenten als geldige invoer.
Uitgebreide eigenschappen zijn niet toegestaan voor tabellen die zijn geoptimaliseerd voor geheugen.
Uitgebreide eigenschappen repliceren
Uitgebreide eigenschappen worden alleen gerepliceerd in de initiële synchronisatie tussen de uitgever en de abonnee. Als u een uitgebreide eigenschap toevoegt of wijzigt na de initiële synchronisatie, wordt de wijziging niet gerepliceerd. Zie Gegevens en databaseobjecten publiceren voor meer informatie over het repliceren van databaseobjecten.
Schema versus gebruiker
Het is niet raadzaam om op te USER geven als een type niveau 0 wanneer u een uitgebreide eigenschap toepast op een databaseobject, omdat dit dubbelzinnigheid bij naamomzetting kan veroorzaken. Stel dat de gebruiker Mary eigenaar is van twee schema's (Mary en MySchema) en dat deze schema's beide een tabel met de naam MyTablebevatten. Als Mary een uitgebreide eigenschap aan een tabel MyTable toevoegt en opgeeft @level0type = 'USER', @level0name = N'Mary', is het niet duidelijk aan welke tabel de uitgebreide eigenschap wordt toegepast. Sql Server past de eigenschap toe op de tabel die is opgenomen in het schema met de naam Mary.
Machtigingen
Leden van de db_owner en db_ddladmin vaste databaserollen kunnen uitgebreide eigenschappen toevoegen aan elk object met de volgende uitzondering: db_ddladmin kan geen eigenschappen toevoegen aan de database zelf of aan gebruikers of rollen.
Gebruikers kunnen uitgebreide eigenschappen toevoegen aan objecten die ze bezitten of machtigingen voor ALTER of CONTROL hebben.
Voorbeelden
Eén. Een uitgebreide eigenschap toevoegen aan een database
In het volgende voorbeeld wordt de naam Caption van de eigenschap met een waarde toegevoegd AdventureWorks2022 Sample OLTP Database aan de AdventureWorks2022 voorbeelddatabase.
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Een uitgebreide eigenschap toevoegen aan een kolom in een tabel
In het volgende voorbeeld wordt een bijschrifteigenschap toegevoegd aan een kolom PostalCode in de tabel 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. Een eigenschap invoermasker toevoegen aan een kolom
In het volgende voorbeeld wordt een eigenschap 99999 or 99999-9999 or #### ### invoermasker toegevoegd aan de kolom PostalCode in de tabel 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. Een uitgebreide eigenschap toevoegen aan een bestandsgroep
In het volgende voorbeeld wordt een uitgebreide eigenschap toegevoegd aan de PRIMARY bestandsgroep.
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. Een uitgebreide eigenschap toevoegen aan een schema
In het volgende voorbeeld wordt een uitgebreide eigenschap toegevoegd aan het HumanResources schema.
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. Een uitgebreide eigenschap toevoegen aan een tabel
In het volgende voorbeeld wordt een uitgebreide eigenschap toegevoegd aan de Address tabel in het Person schema.
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. Een uitgebreide eigenschap toevoegen aan een rol
In het volgende voorbeeld wordt een toepassingsrol gemaakt en wordt een uitgebreide eigenschap toegevoegd aan de rol. Vervang <password> door een sterk wachtwoord.
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. Een uitgebreide eigenschap toevoegen aan een type
In het volgende voorbeeld wordt een uitgebreide eigenschap toegevoegd aan een type.
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';
Ik. Een uitgebreide eigenschap toevoegen aan een gebruiker
In het volgende voorbeeld wordt een gebruiker gemaakt en wordt een uitgebreide eigenschap toegevoegd aan de gebruiker.
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';