Bagikan melalui


sp_dropextendedproperty (T-SQL)

Berlaku untuk:SQL Server

Menghilangkan properti yang diperluas yang ada.

Konvensi sintaks transact-SQL

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, FILEGROUPEVENT NOTIFICATION, MESSAGE TYPE, , PARTITION SCHEMEPARTITION 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 NAMEFUNCTION, PROCEDURE, , RULEQUEUE, 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 NOTIFICATIONCONSTRAINT, 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