Aracılığıyla paylaş


sp_updateextendedproperty (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Mevcut genişletilmiş bir mülkün değerini günceller.

Transact-SQL söz dizimi kuralları

Sözdizimi

sp_updateextendedproperty
    [ @name = ] N'name'
    [ , [ @value = ] value ]
    [ , [ @level0type = ] 'level0type' ]
    [ , [ @level0name = ] N'level0name' ]
    [ , [ @level1type = ] 'level1type' ]
    [ , [ @level1name = ] N'level1name' ]
    [ , [ @level2type = ] 'level2type' ]
    [ , [ @level2name = ] N'level2name' ]
[ ; ]

Arguments

[ @name = ] ‘name

Güncellenecek mülkün adı. @namesysname'dir, varsayılan yoktur.

[ @value = ] değeri

Mülkle ilişkili değer. @value, varsayılan olarak NULL. Değer boyutu 7.500 bayttan fazla olamaz.

[ @level0type = ] 'level0type'

Kullanıcı veya kullanıcı tarafından tanımlanan tür. @level0typevarchar(128)'dir ve varsayılan olarak NULL. Geçerli girdiler şunlardır:

  • ASSEMBLY
  • CONTRACT
  • EVENT NOTIFICATION
  • FILEGROUP
  • MESSAGE TYPE
  • PARTITION FUNCTION
  • PARTITION SCHEME
  • PLAN GUIDE
  • REMOTE SERVICE BINDING
  • ROUTE
  • SCHEMA
  • SERVICE
  • USER
  • TRIGGER
  • TYPE
  • NULL

Önemli

USER ve TYPEseviye 0 tipleri SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Bu özellikleri yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özellikleri kullanan uygulamaları değiştirmeyi planlayın. SCHEMA Seviye 0 türü olarak kullanın, yerine USER. Için TYPE, SCHEMA tipi olarak ve TYPE tipi olarak kullanın.

[ @level0name = ] N'level0name'

Belirtilen seviye 0 nesne türünün adı. @level0namesysname'dir, varsayılan NULLolarak .

[ @level1type = ] 'level1type'

Seviye 1 nesnenin türü. @level1typevarchar(128)'dir ve varsayılan olarak .NULL Geçerli girdiler şunlardır:

  • ASSEMBLY
  • CONTRACT
  • EVENT NOTIFICATION
  • FILEGROUP
  • MESSAGE TYPE
  • PARTITION FUNCTION
  • PARTITION SCHEME
  • PLAN GUIDE
  • REMOTE SERVICE BINDING
  • ROUTE
  • SCHEMA
  • SERVICE
  • USER
  • TRIGGER
  • TYPE
  • NULL

[ @level1name = ] N'level1name'

Belirtilen seviye 1 nesne türünün adı. @level1namesysname'dir ve varsayılan olarak .NULL

[ @level2type = ] 'level2type'

Seviye 2 nesne türü. @level2typevarchar(128)'dir ve varsayılan olarak .NULL Geçerli girdiler şunlardır:

  • COLUMN
  • CONSTRAINT
  • EVENT NOTIFICATION
  • INDEX
  • PARAMETER
  • TRIGGER
  • NULL

[ @level2name = ] N'level2name'

Belirtilen seviye 2 nesne türünün adı. @level2namesysname'dir ve varsayılan olarak .NULL

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Açıklamalar

Genişletilmiş özellikler belirttiğinizde, SQL Server veritabanındaki nesneler üç seviyeye (0, 1 ve 2) ayrılır. Seviye 0 en yüksek seviyedir ve veritabanı kapsamında bulunan nesneler olarak tanımlanır. Seviye 1 nesneler bir şema veya kullanıcı kapsamı içinde, seviye 2 nesneler ise seviye 1 nesneler tarafından tutulur. Bu seviyelerden herhangi birinde nesneler için genişletilmiş özellikler tanımlanabilir. Bir seviyedeki bir nesneye yapılan referanslar, onları sahip olan veya içeren daha yüksek seviye nesnelerin isimleriyle nitelendirilmelidir.

Geçerli bir @name ve @value verildiğinde, eğer tüm nesne türleri ve isimleri NULL, güncellenen özellik mevcut veritabanına aittir.

Permissions

db_owner ve db_ddladmin sabit veritabanı rollerinin üyeleri, aşağıdaki istisna dışında herhangi bir nesnenin genişletilmiş özelliklerini güncelleyebiliyor: db_ddladmin veritabanına veya kullanıcılara veya rollere özellikler ekleyemez.

Kullanıcılar, sahip oldukları veya ALTER veya CONTROL izinlerine sahip olan nesnelere genişletilmiş özellikleri güncelleyebiliyor.

Örnekler

A. Bir sütunda genişletilmiş bir özelliği güncelleyin

Aşağıdaki örnek, tablodaki Captionsütundaki ID özelliğin T1 değerini günceller.

USE AdventureWorks2022;
GO

CREATE TABLE T1 (id INT, name CHAR (20));
GO

EXECUTE sp_addextendedproperty
    @name = N'Caption',
    @value = N'Employee ID',
    @level0type = 'SCHEMA',
    @level0name = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

--Update the extended property.
EXECUTE sp_updateextendedproperty
    @name = N'Caption',
    @value = 'Employee ID must be unique.',
    @level0type = 'SCHEMA',
    @level0name = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

B. Bir veritabanında genişletilmiş bir özelliği güncelle

Aşağıdaki örnek önce örnek veritabanında AdventureWorks2025 genişletilmiş bir özellik oluşturur ve ardından o özelliğin değerini günceller.

USE AdventureWorks2022;
GO

EXECUTE sp_addextendedproperty
    @name = N'NewCaption',
    @value = 'AdventureWorks Sample OLTP Database';
GO

USE AdventureWorks2022;
GO

EXECUTE sp_updateextendedproperty
    @name = N'NewCaption',
    @value = 'AdventureWorks Sample Database';
GO