sp_updateextendedproperty (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Memperbarui nilai properti yang diperluas yang ada.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @name = ] N'name'

Nama properti yang akan diperbarui. @name adalah sysname, tanpa default.

[ @value = ] nilai

Nilai yang terkait dengan properti . @value sql_variant, dengan default NULL. Ukuran nilai tidak boleh lebih dari 7.500 byte.

[ @level0type = ] 'level0type'

Jenis yang ditentukan pengguna atau pengguna. @level0type adalah varchar(128), dengan default NULL. Input yang valid adalah:

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

Penting

USER dan TYPE sebagai tipe tingkat 0 akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur-fitur ini. Gunakan SCHEMA sebagai tipe tingkat 0 alih-alih USER. Untuk TYPE, gunakan SCHEMA sebagai jenis tingkat 0 dan TYPE sebagai jenis tingkat 1 .

[ @level0name = ] N'level0name'

Nama tipe objek tingkat 0 yang ditentukan. @level0name adalah sysname, dengan default NULL.

[ @level1type = ] 'level1type'

Jenis objek tingkat 1. @level1type adalah varchar(128), dengan default NULL. Input yang valid adalah:

  • 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'

Nama tipe objek tingkat 1 yang ditentukan. @level1name adalah sysname, dengan default NULL.

[ @level2type = ] 'level2type'

Jenis objek tingkat 2. @level2type adalah varchar(128), dengan default NULL. Input yang valid adalah:

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

[ @level2name = ] N'level2name'

Nama tipe objek tingkat 2 yang ditentukan. @level2name adalah sysname, dengan default NULL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Saat Anda menentukan properti yang diperluas, objek dalam database SQL Server diklasifikasikan ke dalam tiga tingkat (0, 1, dan 2). Tingkat 0 adalah tingkat tertinggi dan didefinisikan sebagai objek yang terkandung dalam cakupan database. Objek tingkat 1 terkandung dalam skema atau cakupan pengguna, dan objek tingkat 2 dimuat oleh objek tingkat 1. Properti yang diperluas dapat ditentukan untuk objek di salah satu tingkat ini. Referensi ke objek dalam satu tingkat harus memenuhi syarat dengan nama objek tingkat lebih tinggi yang memiliki atau berisinya.

Mengingat @name dan @value yang valid, jika semua jenis dan nama objek adalah , properti yang NULLdiperbarui milik database saat ini.

Izin

Anggota peran database tetap db_owner dan db_ddladmin dapat memperbarui properti yang diperluas dari objek apa pun dengan pengecualian berikut: db_ddladmin tidak dapat menambahkan properti ke database itu sendiri, atau ke pengguna atau peran.

Pengguna dapat memperbarui properti yang diperluas ke objek yang mereka miliki, atau di mana mereka memiliki izin ALTER atau CONTROL.

Contoh

J. Memperbarui properti yang diperluas pada kolom

Contoh berikut memperbarui nilai properti Caption pada kolom ID dalam tabel T1.

USE AdventureWorks2022;
GO

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

EXEC 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.
EXEC 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. Memperbarui properti yang diperluas pada database

Contoh berikut pertama-tama membuat properti yang diperluas pada AdventureWorks2022 database sampel lalu memperbarui nilai properti tersebut.

USE AdventureWorks2022;
GO

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

USE AdventureWorks2022;
GO

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