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

Jak sprawdzić, czy ograniczenie istnieje na serwerze Sql?

spróbuj tego:

SELECT
    * 
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
    WHERE CONSTRAINT_NAME ='FK_ChannelPlayerSkins_Channels'

-- EDYTUJ --

Kiedy pierwotnie odpowiadałem na to pytanie, myślałem „Klucz obcy”, ponieważ pierwotne pytanie dotyczyło znalezienia „FK_ChannelPlayerSkins_Channels”. Od tego czasu wiele osób skomentowało znalezienie innych „ograniczeń”, oto kilka innych zapytań:

--Returns one row for each CHECK, UNIQUE, PRIMARY KEY, and/or FOREIGN KEY
SELECT * 
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_NAME='XYZ'  


--Returns one row for each FOREIGN KEY constrain
SELECT * 
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
    WHERE CONSTRAINT_NAME='XYZ'


--Returns one row for each CHECK constraint 
SELECT * 
    FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS
    WHERE CONSTRAINT_NAME='XYZ'

tutaj jest alternatywna metoda

--Returns 1 row for each CHECK, UNIQUE, PRIMARY KEY, FOREIGN KEY, and/or DEFAULT
SELECT 
    OBJECT_NAME(OBJECT_ID) AS NameofConstraint
        ,SCHEMA_NAME(schema_id) AS SchemaName
        ,OBJECT_NAME(parent_object_id) AS TableName
        ,type_desc AS ConstraintType
    FROM sys.objects
    WHERE type_desc LIKE '%CONSTRAINT'
        AND OBJECT_NAME(OBJECT_ID)='XYZ'

Jeśli potrzebujesz jeszcze więcej informacji o ograniczeniach, zajrzyj do systemowej procedury składowanej master.sys.sp_helpconstraint aby zobaczyć, jak uzyskać określone informacje. Aby wyświetlić kod źródłowy za pomocą programu SQL Server Management Studio, przejdź do „Eksploratora obiektów”. Stamtąd rozwijasz bazę danych „Master”, a następnie rozwijasz „Programmability”, następnie „Stored Procedures”, a następnie „System Stored Procedures”. Następnie możesz znaleźć „sys.sp_helpconstraint”, kliknąć go prawym przyciskiem myszy i wybrać „modyfikuj”. Tylko uważaj, aby nie zapisać w nim żadnych zmian. Możesz także po prostu użyć tej systemowej procedury składowanej w dowolnej tabeli, używając jej na przykład EXEC sp_helpconstraint YourTableNameHere .



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

  2. Jak utworzyć ograniczenie sprawdzania w wielu kolumnach w SQL Server — samouczek SQL Server/TSQL — część 84

  3. Używanie wyrażeń CASE w SQL Server

  4. Aktualizowanie danych Salesforce za pomocą kursora SQL Server

  5. Czy istnieje funkcja Max w SQL Server, która przyjmuje dwie wartości, takie jak Math.Max ​​w .NET?