Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да проверя дали съществува ограничение в Sql сървър?

опитайте това:

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

-- РЕДАКТИРАНЕ --

Когато първоначално отговорих на този въпрос, мислех за „Външен ключ“, защото първоначалният въпрос беше за намиране на „FK_ChannelPlayerSkins_Channels“. Оттогава много хора коментираха намирането на други „ограничения“, ето някои други запитвания за това:

--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'

ето алтернативен метод

--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'

Ако имате нужда от още повече информация за ограничения, погледнете вътре в системната съхранена процедура master.sys.sp_helpconstraint за да видите как да получите определена информация. За да видите изходния код с помощта на SQL Server Management Studio, отидете в "Object Explorer". Оттам разширявате базата данни "Master", след това разширявате "Programmability", след това "Stored Procedures", след това "System Stored Procedures". След това можете да намерите "sys.sp_helpconstraint" и да щракнете с десния бутон върху него и да изберете "modify". Просто внимавайте да не запазите промени в него. Освен това можете просто да използвате тази системна съхранена процедура на всяка таблица, като я използвате като 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. Изтриване на дублиращи се редове в SQL Server

  2. AT TIME ZONE – нова любима функция в SQL Server 2016

  3. Регистърът на транзакциите на SQL Server, част 3:Основи на регистрирането

  4. Как да добавя персонализирани атрибути към SQL низ за връзка?

  5. WinRT System.Data - Свързване към SQL