sql >> Database >  >> RDS >> Sqlserver

Hoe te controleren of er een beperking bestaat in de SQL-server?

probeer dit:

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

-- BEWERKEN --

Toen ik deze vraag oorspronkelijk beantwoordde, dacht ik aan "Foreign Key" omdat de oorspronkelijke vraag ging over het vinden van "FK_ChannelPlayerSkins_Channels". Sindsdien hebben veel mensen opmerkingen gemaakt over het vinden van andere "beperkingen", hier zijn enkele andere vragen daarvoor:

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

hier is een alternatieve methode

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

Als je nog meer informatie over beperkingen nodig hebt, kijk dan in de door het systeem opgeslagen procedure master.sys.sp_helpconstraint om te zien hoe u aan bepaalde informatie kunt komen. Om de broncode te bekijken met SQL Server Management Studio, ga naar de "Object Explorer". Van daaruit vouwt u de "Master"-database uit, vervolgens "Programmability", vervolgens "Stored Procedures" en vervolgens "System Stored Procedures". U kunt dan "sys.sp_helpconstraint" vinden en er met de rechtermuisknop op klikken en "wijzigen" selecteren. Zorg er wel voor dat u er geen wijzigingen in opslaat. U kunt deze door het systeem opgeslagen procedure ook gewoon op elke tafel gebruiken door deze te gebruiken als EXEC sp_helpconstraint YourTableNameHere .



  1. ASIN() Functie in Oracle

  2. Een gekoppelde server in SQL Server verwijderen met T-SQL

  3. 8 manieren om dagen aan een datum toe te voegen in MariaDB

  4. Python, Ruby en Golang:een vergelijking van webservicetoepassingen