Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Menambahkan properti baru yang diperluas ke objek database.
Sintaks
sp_addextendedproperty
[ @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 ditambahkan.
@name adalah sysname, tanpa default, dan tidak boleh NULL. Nama dapat menyertakan string karakter kosong atau non-alfanumerik, dan nilai biner.
[ @value = ] nilai
Nilai yang akan dikaitkan dengan properti .
@value sql_variant, dengan default NULL. Ukuran @value tidak boleh lebih dari 7.500 byte.
[ @level0type = ] 'level0type'
Jenis objek tingkat 0.
@level0type adalah varchar(128), dengan default NULL.
Input yang valid adalah:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Penting
Kemampuan untuk menentukan USER sebagai tipe level-0 dalam properti yang diperluas dari objek jenis level-1 akan dihapus dalam versi SQL Server di masa mendatang. Gunakan SCHEMA sebagai jenis level-0 sebagai gantinya. Misalnya, saat menentukan properti yang diperluas pada tabel, tentukan skema tabel alih-alih nama pengguna. Kemampuan untuk menentukan TYPE sebagai tipe level-0 akan dihapus dalam versi SQL Server yang akan datang. Untuk TYPE, gunakan SCHEMA sebagai jenis level-0 dan TYPE sebagai jenis level-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:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @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:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @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 pada 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. Misalnya, saat Anda menambahkan properti yang diperluas ke kolom tabel (tingkat 2), Anda juga harus menentukan nama tabel (tingkat 1) yang berisi kolom dan skema (tingkat 0) yang berisi tabel.
Jika semua jenis dan nama objek null, properti milik database saat ini itu sendiri.
Properti yang diperluas tidak diizinkan pada objek sistem, objek di luar lingkup database yang ditentukan pengguna, atau objek yang tidak tercantum dalam Argumen sebagai input yang valid.
Properti yang diperluas tidak diperbolehkan pada tabel yang dioptimalkan memori.
Mereplikasi properti yang diperluas
Properti yang diperluas hanya direplikasi dalam sinkronisasi awal antara Penerbit dan Pelanggan. Jika Anda menambahkan atau mengubah properti yang diperluas setelah sinkronisasi awal, perubahan tidak direplikasi. Untuk informasi selengkapnya tentang cara mereplikasi objek database, lihat Menerbitkan Data dan Objek Database.
Skema versus pengguna
Kami tidak menyarankan untuk menentukan USER sebagai jenis level-0 saat Anda menerapkan properti yang diperluas ke objek database, karena ini dapat menyebabkan ambiguitas resolusi nama. Misalnya, asumsikan pengguna Mary memiliki dua skema (Mary dan MySchema), dan skema ini keduanya berisi tabel bernama MyTable. Jika Mary menambahkan properti yang diperluas ke tabel MyTable dan menentukan @level0type = 'USER', @level0name = N'Mary', tidak jelas tabel mana properti yang diperluas diterapkan. Untuk mempertahankan kompatibilitas mundur, SQL Server menerapkan properti ke tabel yang terkandung dalam skema bernama Mary.
Izin
Anggota peran database tetap db_owner dan db_ddladmin dapat menambahkan properti yang diperluas ke objek apa pun dengan pengecualian berikut: db_ddladmin tidak dapat menambahkan properti ke database itu sendiri, atau ke pengguna atau peran.
Pengguna dapat menambahkan properti yang diperluas ke objek yang mereka miliki atau memiliki izin UBAH atau KONTROL.
Contoh
J. Menambahkan properti yang diperluas ke database
Contoh berikut menambahkan nama Caption properti dengan nilai AdventureWorks2022 Sample OLTP Database ke AdventureWorks2025 database sampel.
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Menambahkan properti yang diperluas ke kolom dalam tabel
Contoh berikut menambahkan properti keterangan ke kolom PostalCode dalam tabel Address.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Caption', @value = 'Postal code is a required column.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
C. Menambahkan properti masker input ke kolom
Contoh berikut menambahkan properti 99999 or 99999-9999 or #### ### masker input ke kolom PostalCode dalam tabel Address.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
D. Menambahkan properti yang diperluas ke grup file
Contoh berikut menambahkan properti yang diperluas ke PRIMARY grup file.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Primary filegroup for the AdventureWorks2022 sample database.',
@level0type = 'FILEGROUP', @level0name = N'PRIMARY';
GO
E. Menambahkan properti yang diperluas ke skema
Contoh berikut menambahkan properti yang diperluas ke HumanResources skema.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Contains objects related to employees and departments.',
@level0type = 'SCHEMA', @level0name = N'HumanResources';
F. Menambahkan properti yang diperluas ke tabel
Contoh berikut menambahkan properti yang diperluas ke Address tabel dalam Person skema.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Street address information for customers, employees, and vendors.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address';
GO
G. Menambahkan properti yang diperluas ke peran
Contoh berikut membuat peran aplikasi dan menambahkan properti yang diperluas ke peran. Ganti <password> dengan kata sandi yang kuat.
USE AdventureWorks2022;
GO
CREATE APPLICATION ROLE Buyers
WITH PASSWORD = '<password>';
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'Application Role for the Purchasing Department.',
@level0type = 'USER', @level0name = N'Buyers';
H. Menambahkan properti yang diperluas ke jenis
Contoh berikut menambahkan properti yang diperluas ke jenis.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'Data type (alias) to use for any column that represents an order number. For example a sales order number or purchase order number.',
@level0type = 'SCHEMA', @level0name = N'dbo',
@level1type = 'TYPE', @level1name = N'OrderNumber';
1. Menambahkan properti yang diperluas ke pengguna
Contoh berikut membuat pengguna dan menambahkan properti yang diperluas ke pengguna.
USE AdventureWorks2022;
GO
CREATE USER CustomApp WITHOUT LOGIN;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'User for an application.',
@level0type = 'USER', @level0name = N'CustomApp';