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

Bagaimana cara menemukan batasan default menggunakan INFORMATION_SCHEMA?

Seperti yang saya pahami, batasan nilai default bukan bagian dari standar ISO, sehingga tidak muncul di INFORMATION_SCHEMA. INFORMATION_SCHEMA sepertinya pilihan terbaik untuk tugas semacam ini karena ini adalah lintas platform, tetapi jika informasinya tidak tersedia, seseorang harus menggunakan tampilan katalog objek (sys.*) alih-alih tampilan tabel sistem, yang tidak digunakan lagi di SQL Server 2005 dan setelahnya.

Di bawah ini hampir sama dengan jawaban @ user186476. Ini mengembalikan nama batasan nilai default untuk kolom tertentu. (Untuk pengguna non-SQL Server, Anda memerlukan nama default untuk menghapusnya, dan jika Anda tidak menamai batasan default sendiri, SQL Server membuat beberapa nama gila seperti "DF_TableN_Colum_95AFE4B5". Agar lebih mudah diubah skema Anda di masa mendatang, selalu beri nama kendala Anda secara eksplisit!)

-- returns name of a column's default value constraint 
SELECT
    default_constraints.name
FROM 
    sys.all_columns

        INNER JOIN
    sys.tables
        ON all_columns.object_id = tables.object_id

        INNER JOIN 
    sys.schemas
        ON tables.schema_id = schemas.schema_id

        INNER JOIN
    sys.default_constraints
        ON all_columns.default_object_id = default_constraints.object_id

WHERE 
        schemas.name = 'dbo'
    AND tables.name = 'tablename'
    AND all_columns.name = 'columnname'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa memilih hari pertama dalam sebulan di SQL?

  2. Membuat kunci asing komposit di SQL Server 2008

  3. Bagaimana cara hash kata sandi admin di tabel Pengguna saya?

  4. grup sql dengan versus berbeda

  5. Buat skrip SQL yang membuat database dan tabel