Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć domyślne ograniczenie przy użyciu INFORMATION_SCHEMA?

Jak rozumiem, ograniczenia wartości domyślnych nie są częścią standardu ISO, więc nie pojawiają się w INFORMATION_SCHEMA. INFORMATION_SCHEMA wydaje się najlepszym wyborem dla tego rodzaju zadania, ponieważ jest to działanie wieloplatformowe, ale jeśli informacje nie są dostępne, należy użyć widoków katalogu obiektów (sys.*) zamiast systemowych widoków tabel, które są przestarzałe w SQL Server 2005 i później.

Poniżej jest prawie to samo, co odpowiedź @user186476. Zwraca nazwę ograniczenia wartości domyślnej dla danej kolumny. (Dla użytkowników innych niż SQL Server potrzebna jest nazwa domyślnej, aby ją usunąć, a jeśli nie nazwiesz domyślnego ograniczenia samodzielnie, SQL Server tworzy szaloną nazwę, taką jak „DF_TableN_Colum_95AFE4B5”. Aby ułatwić zmianę Twój schemat w przyszłości, zawsze wyraźnie nazwij swoje ograniczenia!)

-- 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. SQL Server:Do czego służą instrukcje wsadowe (tj. przy użyciu GO)?

  2. Implementacja obsługi błędów i transakcji w SQL Server

  3. Jak mogę sprawdzić, czy mój async/await używa portu zakończenia we/wy?

  4. Połączenie JDBC nie powiodło się, błąd:połączenie TCP/IP z hostem nie powiodło się

  5. Jak znaleźć przyczynę zakleszczenia w sql server ro14?