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

Sub pertanyaan dalam batasan cek

Catatan, yang sebenarnya Anda inginkan adalah batasan kunci asing. Oleh karena itu, untuk memasukkan "kueri" ke dalam pemeriksaan, Anda dapat menulis fungsi yang berisi kueri dan mengeluarkan nilai skalar, lalu menggunakan fungsi tersebut dalam batasan pemeriksaan.

CREATE FUNCTION myFunction (
    @field DATATYPE(?)
)
RETURNS VARCHAR(5)
AS
BEGIN
    IF EXISTS (SELECT* FROM Table2 WHERE MYFIELD = @field)
        return 'True'
    return 'False'
END

Sesuatu seperti itu. Tidak diuji.

Kemudian Anda dapat menambahkannya ke cek Anda seperti itu

ALTER TABLE Table1
    WITH CHECK ADD CONSTRAINT CK_Code
    CHECK (myFunction(MYFIELD) = 'True')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Memulihkan Database

  2. Cara Mengirim Email HTML dari SQL Server (T-SQL)

  3. Bagaimana cara melakukan kunci baris?

  4. Nonaktifkan sementara semua batasan kunci asing

  5. Bagaimana cara menggunakan kembali sub kueri di sql?