Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Gunakan OBJECTPROPERTY() untuk Mengetahui apakah Objek adalah Batasan PERIKSA di SQL Server

Di SQL Server Anda dapat menggunakan OBJECTPROPERTY() berfungsi untuk mengetahui apakah suatu objek merupakan CHECK kendala.

Fungsi ini menerima dua parameter:ID objek, dan properti yang Anda periksa.

Oleh karena itu, Anda dapat meneruskan ID objek sebagai argumen pertama, dan IsCheckCnst sebagai yang kedua, dan fungsinya akan mengembalikan 1 atau 0 tergantung apakah itu CHECK paksaan.

Nilai kembalian 1 artinya adalah CHECK kendala, dan nilai 0 berarti bukan.

Contoh 1 – Memeriksa Batasan CHECK

Berikut contoh cepat untuk ditunjukkan.

USE Test;
SELECT OBJECTPROPERTY(178099675, 'IsCheckCnst') AS [IsCheckCnst];

Hasil:

+---------------+
| IsCheckCnst   |
|---------------|
| 1             |
+---------------+

Dalam hal ini, Uji database memiliki objek dengan ID yang diberikan, dan itu sebenarnya adalah CHECK kendala.

Contoh 2 – Mendapatkan ID Objek

Jika Anda mengetahui nama objek, tetapi tidak mengetahui ID-nya, Anda dapat menggunakan OBJECT_ID() berfungsi untuk mengambil ID berdasarkan namanya.

Contoh:

SELECT OBJECTPROPERTY(OBJECT_ID('chkEndDate'), 'IsCheckCnst') AS [IsCheckCnst];

Hasil:

+---------------+
| IsCheckCnst   |
|---------------|
| 1             |
+---------------+

Dalam hal ini saya memeriksa objek yang sama dari contoh sebelumnya.

Ini dia lagi dengan keluaran ID secara terpisah.

SELECT 
  OBJECT_ID('chkEndDate') AS [Object ID],
  OBJECTPROPERTY(OBJECT_ID('chkEndDate'), 'IsCheckCnst') AS [IsCheckCnst];

Hasil:

+-------------+---------------+
| Object ID   | IsCheckCnst   |
|-------------+---------------|
| 178099675   | 1             |
+-------------+---------------+

Contoh 3 – Memeriksa Tabel (yaitu BUKAN Batasan PERIKSA)

Inilah yang terjadi jika objek bukan CHECK kendala.

SELECT OBJECTPROPERTY(18099105, 'IsCheckCnst') AS [IsCheckCnst];

Hasil:

+---------------+
| IsCheckCnst   |
|---------------|
| 0             |
+---------------+

Dalam hal ini, database tidak sebenarnya memiliki objek dengan ID itu, tetapi objek itu sebenarnya adalah tabel, jadi saya mendapatkan hasil negatif.

Ini dia lagi menggunakan OBJECT_ID() .

SELECT 
  OBJECT_ID('Individual') AS [Object ID],
  OBJECTPROPERTY(OBJECT_ID('Individual'), 'IsCheckCnst') AS [IsCheckCnst];

Hasil:

+-------------+---------------+
| Object ID   | IsCheckCnst   |
|-------------+---------------|
| 18099105    | 0             |
+-------------+---------------+

Contoh 4 – Objek Tidak Ada

SQL Server mengasumsikan bahwa ID objek dalam konteks database saat ini. Jika Anda memasukkan ID objek dari database yang berbeda, Anda akan mendapatkan hasil NULL atau Anda akan mendapatkan hasil yang salah.

SELECT 
  OBJECTPROPERTY(OBJECT_ID('NonExistentObject'), 'IsCheckCnst') AS [NonExistentObject],
  OBJECTPROPERTY(11111111, 'IsCheckCnst') AS [11111111];

Hasil:

+---------------------+------------+
| NonExistentObject   | 11111111   |
|---------------------+------------|
| NULL                | NULL       |
+---------------------+------------+

Dalam hal ini database tidak berisi objek dengan nama atau ID tersebut.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan Semua Filegroups untuk Database Saat Ini di SQL Server

  2. Tambahkan baris ringkasan dengan total

  3. Cara Memeriksa apakah Kolom yang Dihitung "Bertahan" di SQL Server

  4. Apa itu Skema di SQL Server dan Cara Membuat/Menjatuhkan Skema di Database SQL Server - Tutorial SQL Server / TSQL Part 27

  5. Buat Fungsi Bernilai Tabel Multi-Pernyataan (MSTVF) di SQL Server