sp_updateextendedproperty (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Memperbarui nilai properti yang diperluas yang ada.
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 NULL
diperbarui 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