sp_dropextendedproperty (T-SQL)
Berlaku untuk: SQL Server
Menghilangkan properti yang diperluas yang ada.
Sintaks
sp_dropextendedproperty
[ @name = ] N'name'
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argumen
[ @name = ] N'name'
Nama properti yang akan dihilangkan. @name adalah sysname, dan tidak boleh NULL
.
[ @level0type = ] 'level0type'
Nama tipe objek tingkat 0 yang ditentukan. @level0type adalah varchar(128), dengan default NULL
.
Input yang valid adalah ASSEMBLY
, , CONTRACT
, FILEGROUP
EVENT NOTIFICATION
, MESSAGE TYPE
, , PARTITION SCHEME
PARTITION FUNCTION
, REMOTE SERVICE BINDING
, ROUTE
, SCHEMA
, SERVICE
, USER
, TRIGGER
, TYPE
, , dan NULL
.
Penting
USER
dan TYPE
sebagai jenis level-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 AGGREGATE
, , DEFAULT
, LOGICAL FILE NAME
FUNCTION
, PROCEDURE
, , RULE
QUEUE
, SYNONYM
, TABLE
, TABLE_TYPE
, TYPE
, VIEW
, XML SCHEMA COLLECTION
, , dan 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
, , EVENT NOTIFICATION
CONSTRAINT
, INDEX
, PARAMETER
, TRIGGER
, dan 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 jenis dan nama semua objek tingkat yang lebih tinggi.
Mengingat nama properti yang valid @name, jika semua jenis dan nama objek dan NULL
properti ada di database saat ini, properti tersebut akan dihapus. Lihat Contoh B yang mengikuti nanti di artikel ini.
Izin
Anggota peran database tetap db_owner dan db_ddladmin dapat menghilangkan 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 menghilangkan properti yang diperluas ke objek yang mereka miliki, atau di mana mereka memiliki ALTER
atau CONTROL
izin.
Contoh
J. Menghapus properti yang diperluas pada kolom
Contoh berikut menghapus properti caption
dari kolom id
dalam tabel T1
yang terkandung dalam skema dbo
.
CREATE TABLE T1 (id INT, name CHAR(20));
GO
EXEC sp_addextendedproperty @name = 'caption',
@value = 'Employee ID',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
EXEC sp_dropextendedproperty @name = 'caption',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
DROP TABLE T1;
GO
B. Menghapus properti yang diperluas pada database
Contoh berikut menghapus properti bernama MS_Description
dari AdventureWorks2022
database sampel. Karena properti ada di database itu sendiri, tidak ada jenis objek dan nama yang ditentukan.
USE AdventureWorks2022;
GO
EXEC sp_dropextendedproperty @name = N'MS_Description';
GO