DATABASEPROPERTYEX (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Untuk database tertentu di SQL Server, fungsi ini mengembalikan pengaturan opsi atau properti database yang ditentukan saat ini.

Konvensi sintaks transact-SQL

Sintaksis

DATABASEPROPERTYEX ( database , property )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

database
Ekspresi yang menentukan nama database yang DATABASEPROPERTYEX akan mengembalikan informasi properti bernama. database memiliki jenis data nvarchar(128).

Untuk SQL Database, DATABASEPROPERTYEX memerlukan nama database saat ini. Ini mengembalikan NULL untuk semua properti jika diberi nama database yang berbeda.

property
Ekspresi yang menentukan nama properti database yang akan dikembalikan. properti memiliki jenis data varchar(128), dan mendukung salah satu nilai dalam tabel ini:

Catatan

Jika database belum dimulai, panggilan ke DATABASEPROPERTYEX akan mengembalikan NULL jika DATABASEPROPERTYEX mengambil nilai tersebut dengan akses database langsung, alih-alih pengambilan dari metadata. Database dengan AUTO_CLOSE diatur ke AKTIF, atau offline, didefinisikan sebagai 'tidak dimulai.'

Properti Deskripsi Nilai yang dikembalikan
Kolase Nama kolatasi default untuk database. Nama kolajek

NULL: Database tidak dimulai.

Jenis data dasar: nvarchar(128)
PerbandinganStyle Gaya perbandingan Windows dari kolate. Gunakan nilai gaya berikut untuk membangun bitmap untuk nilai ComparisonStyle yang sudah selesai:

Abaikan kasus: 1
Abaikan aksen: 2
Abaikan kana: 65536
Abaikan lebar: 131072

Misalnya, default 196609 adalah hasil dari menggabungkan kasus abaikan, mengabaikan kana, dan mengabaikan opsi lebar.
Mengembalikan gaya perbandingan.

Mengembalikan 0 untuk semua kolatasi biner.

Jenis data dasar: int
Edisi Edisi database atau tingkat layanan. Berlaku untuk: Azure SQL Database, Azure Synapse Analytics.



Tujuan Umum

Bisnis Kritis

Dasar

Standard

Premium

Sistem (untuk database master)

NULL: Database tidak dimulai.

Jenis data dasar: nvarchar(64)
IsAnsiNullDefault Database mengikuti aturan ISO untuk mengizinkan nilai null. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAnsiNullsEnabled Semua perbandingan dengan null dievaluasi ke tidak diketahui. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAnsiPaddingEnabled String diisi dengan panjang yang sama sebelum perbandingan atau sisipkan. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAnsiWarningsEnabled SQL Server mengeluarkan kesalahan atau pesan peringatan ketika kondisi kesalahan standar terjadi. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsArithmeticAbortEnabled Kueri berakhir ketika terjadi kesalahan luapan atau membagi berdasarkan nol selama eksekusi kueri. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAutoClose Database dimatikan dengan bersih dan membebaskan sumber daya setelah pengguna terakhir keluar. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAutoCreateStatistics Pengoptimal kueri membuat statistik kolom tunggal, sesuai kebutuhan, untuk meningkatkan performa kueri. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAutoCreateStatisticsIncremental Statistik kolom tunggal yang dibuat secara otomatis bertahap jika memungkinkan. Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.

1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAutoShrink File database adalah kandidat untuk penyusutan berkala otomatis. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsAutoUpdateStatistics Saat kueri menggunakan statistik yang berpotensi kedaluarsa yang ada, pengoptimal kueri memperbarui statistik tersebut. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsClone Database adalah salinan database pengguna khusus skema dan statistik yang dibuat dengan DBCC CLONEDATABASE. Lihat Artikel Dukungan Microsoft untuk informasi selengkapnya. Berlaku untuk: SQL Server 2014 (12.x) SP2 dan yang lebih baru.

1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsCloseCursorsOnCommitEnabled Ketika transaksi diterapkan, semua kursor terbuka akan ditutup. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsDatabaseSuspendedForSnapshotBackup Database ditangguhkan. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsFulltextEnabled Database diaktifkan untuk pengindeksan teks lengkap dan semantik. Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.



1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int

Catatan: Nilai properti ini sekarang tidak berpengaruh. Database pengguna selalu diaktifkan untuk pencarian teks lengkap. Rilis SQL Server di masa mendatang akan menghapus properti ini. Jangan gunakan properti ini dalam pekerjaan pengembangan baru, dan ubah aplikasi yang saat ini menggunakan properti ini sesegera mungkin.
IsInStandBy Database online sebagai baca-saja, dengan log pemulihan diizinkan. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsLocalCursorsDefault Deklarasi kursor default ke LOKAL. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsMemoryOptimizedElevateToSnapshotEnabled Tabel yang dioptimalkan memori diakses menggunakan isolasi SNAPSHOT, ketika pengaturan sesi TINGKAT ISOLASI TRANSAKSI diatur ke READ COMMITTED, READ UNCOMMITTED, atau tingkat isolasi yang lebih rendah. Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru.



1: TRUE

0: FALSE

Jenis data dasar: int
IsMergePublished SQL Server mendukung publikasi tabel database untuk replikasi penggabungan, jika replikasi diinstal. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsNullConcat Operan perangkaian null menghasilkan NULL. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsNumericRoundAbortEnabled Kesalahan dihasilkan ketika hilangnya presisi terjadi dalam ekspresi. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsParameterizationForced Opsi SET database PARAMETERISASI ADALAH FORCED. 1: TRUE

0: FALSE

NULL: Input tidak valid
IsQuotedIdentifiersEnabled Tanda kutip ganda pada pengidentifikasi diizinkan. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsPublished Jika replikasi diinstal, SQL Server mendukung publikasi tabel database untuk rekam jepret atau replikasi transaksional. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsRecursiveTriggersEnabled Pengaktifan pemicu secara rekursif diaktifkan. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
Langganan IsSubscribed Database berlangganan publikasi. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsSyncWithBackup Database adalah database yang diterbitkan atau database distribusi, dan mendukung pemulihan yang tidak akan mengganggu replikasi transaksional. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsTornPageDetectionEnabled Mesin Database SQL Server mendeteksi operasi I/O yang tidak lengkap yang disebabkan oleh kegagalan daya atau pemadaman sistem lainnya. 1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsVerifiedClone Database adalah salinan database pengguna khusus skema dan statistik, yang dibuat menggunakan opsi WITH VERIFY_CLONEDB DBCC CLONEDATABASE. Lihat Artikel Dukungan Microsoft ini untuk informasi selengkapnya. Berlaku untuk: Dimulai dengan SQL Server 2016 (13.x) SP2.



1: TRUE

0: FALSE

NULL: Input tidak valid

Jenis data dasar: int
IsXTPSupported Menunjukkan apakah database mendukung OLTP Dalam Memori. Misalnya, pembuatan dan penggunaan tabel yang dioptimalkan memori dan modul yang dikompilasi secara asli.

Khusus untuk SQL Server:

IsXTPSupported tidak bergantung pada keberadaan grup file MEMORY_OPTIMIZED_DATA apa pun, yang diperlukan untuk membuat objek OLTP Dalam Memori.
Berlaku untuk: SQL Server (SQL Server 2016 (13.x) dan yang lebih baru), dan Azure SQL Database.

1: TRUE

0: FALSE

NULL: Input tidak valid, kesalahan, atau tidak berlaku

Jenis data dasar: int
LastGoodCheckDbTime Tanggal dan waktu DBCC CHECKDB terakhir yang berhasil yang berjalan pada database yang ditentukan.1 Jika DBCC CHECKDB belum dijalankan pada database, 1900-01-01 00:00:00.000 dikembalikan. Berlaku untuk: SQL Server 2016 (13.x) dimulai dengan SP2.
SQL Server 2017 (14.x) dimulai dengan CU9.
SQL Server 2019 (15.x) atau yang lebih baru.
Azure SQL Database.

Nilai tanggalwaktu

NULL: Input tidak valid

Jenis data dasar: tanggalwaktu
LCID Pengidentifikasi lokal Windows kolaborasi (LCID). Nilai LCID (dalam format desimal).

Jenis data dasar: int
MaxSizeInBytes Ukuran database maksimum, dalam byte. Berlaku untuk: Azure SQL Database, Azure Synapse Analytics.

Azure SQL Database dan Azure Synapse Analytics – Nilai didasarkan pada SLO kecuali penyimpanan tambahan telah dibeli.

vCore – Nilai dalam kenaikan 1GB hingga ukuran maksimum.

NULL: Database tidak dimulai

Jenis data dasar: bigint
Pemulihan Model pemulihan database PENUH: Model pemulihan penuh

BULK_LOGGED: Model yang dicatat secara massal

SEDERHANA: Model pemulihan sederhana

Jenis data dasar: nvarchar(128)
ServiceObjective Menjelaskan tingkat performa database di SQL Database atau Azure Synapse Analytics. Salah satu dari nilai berikut:

Null: database tidak dimulai

Bersama (untuk edisi Web/Bisnis)

Dasar

S0

S1

S2

S3

Hal 1

P2

P3

ElasticPool

Sistem (untuk master DB)

Jenis data dasar: nvarchar(32)
ServiceObjectiveId ID tujuan layanan di SQL Database. uniqueidentifier yang mengidentifikasi tujuan layanan.
SQLSortOrder ID urutan sortir SQL Server yang didukung di versi SQL Server yang lebih lama. 0: Database menggunakan kolatasi Windows

>0: ID urutan sortir SQL Server

NULL: Input tidak valid, atau database belum dimulai

Jenis data dasar: tinyint
Status Status database. ONLINE: Database tersedia untuk kueri.

Catatan: Fungsi dapat mengembalikan status ONLINE saat database terbuka dan belum dipulihkan. Untuk mengidentifikasi apakah database ONLINE dapat menerima koneksi, kueri properti Kolase DATABASEPROPERTYEX. Database ONLINE dapat menerima koneksi saat kolatasi database mengembalikan nilai non-null. Untuk database AlwaysOn, kueri kolom sys.dm_hadr_database_replica_statesdatabase_state atau database_state_desc .

OFFLINE: Database secara eksplisit diambil secara offline.

PEMULIHAN: Pemulihan database telah dimulai.

PEMULIHAN: Pemulihan database telah dimulai dan database belum siap untuk kueri.

Database tidak pulih.

DARURAT: Database dalam keadaan darurat, baca-saja. Akses dibatasi untuk anggota sysadmin

Jenis data dasar: nvarchar(128)
Kemampuan pembaruan Menunjukkan apakah data dapat dimodifikasi. READ_ONLY: Database mendukung pembacaan data tetapi bukan modifikasi data.

READ_WRITE: Database mendukung pembacaan dan modifikasi data.

Jenis data dasar: nvarchar(128)
UserAccess Menunjukkan pengguna mana yang dapat mengakses database. SINGLE_USER: Hanya satu pengguna db_owner, dbcreator, atau sysadmin pada satu waktu

RESTRICTED_USER: Hanya anggota peran db_owner, dbcreator, atau sysadmin

MULTI_USER: Semua pengguna

Jenis data dasar: nvarchar(128)
Versi Nomor versi internal kode SQL Server tempat database dibuat. Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. Nomor versi: Database terbuka.

NULL: Database belum dimulai.

Jenis data dasar: int
ReplicaID Id replika database/replika hyperscale yang terhubung. Berlaku untuk: Azure SQL Database.

Ini hanya akan mengembalikan id replika dari database/replika hyperscale yang terhubung. Untuk mempelajari selengkapnya tentang jenis replika, lihat Replika sekunder Hyperscale .

NULL: Ini bukan database hyperscale atau database tidak dimulai.

Jenis data dasar: nvarchar(128)

Catatan

1 Untuk database yang merupakan bagian dari Grup Ketersediaan, LastGoodCheckDbTime akan mengembalikan tanggal dan waktu DBCC CHECKDB terakhir yang berhasil yang berjalan pada replika utama, terlepas dari replika tempat Anda menjalankan perintah.

Jenis yang dikembalikan

aql_variant

Pengecualian

Mengembalikan NULL pada kesalahan, atau jika penelepon tidak memiliki izin untuk melihat objek.

Di SQL Server, pengguna hanya dapat melihat metadata dari securables yang dimiliki pengguna atau tempat pengguna telah diberikan izin. Aturan ini berarti bahwa fungsi bawaan yang memancarkan metadata seperti OBJECT_ID dapat mengembalikan NULL jika pengguna tidak memiliki izin pada objek. Lihat Konfigurasi Visibilitas Metadata untuk informasi selengkapnya.

Keterangan

DATABASEPROPERTYEX hanya mengembalikan satu pengaturan properti pada satu waktu. Untuk menampilkan beberapa pengaturan properti, gunakan tampilan katalog sys.databases .

Contoh

J. Mengambil status opsi database AUTO_SHRINK

Contoh ini mengembalikan status opsi database AUTO_SHRINK untuk AdventureWorks database.

SELECT DATABASEPROPERTYEX('AdventureWorks2022', 'IsAutoShrink');  

Berikut adalah hasil yang ditetapkan. Ini menunjukkan bahwa AUTO_SHRINK nonaktif.

------------------  
0  

B. Mengambil kolatasi default untuk database

Contoh ini mengembalikan beberapa atribut AdventureWorks database.

SELECT   
    DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'ServiceObjective') AS ServiceObjective,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'MaxSizeInBytes') AS MaxSizeInBytes  

Berikut adalah hasil yang ditetapkan.

Collation                     Edition        ServiceObjective  MaxSizeInBytes  
----------------------------  -------------  ----------------  --------------  
SQL_Latin1_General_CP1_CI_AS  DataWarehouse  DW1000            5368709120  

C. Menggunakan DATABASEPROPERTYEX untuk memverifikasi koneksi ke replika

Saat menggunakan Azure SQL Database membaca fitur peluasan skala, Anda dapat memverifikasi apakah Anda tersambung ke replika baca-saja atau tidak dengan menjalankan kueri berikut dalam konteks database Anda. Ini akan mengembalikan READ_ONLY saat Anda tersambung ke replika baca-saja. Dengan cara ini, Anda juga dapat mengidentifikasi kapan kueri berjalan pada replika baca-saja.

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability'); 

Baca juga

MENGUBAH DATABASE (T-SQL)
Status Database
sys.databases (T-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)