sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kontrollerer man, om der findes en begrænsning i SQL-serveren?

prøv dette:

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

-- REDIGER --

Da jeg oprindeligt besvarede dette spørgsmål, tænkte jeg "Foreign Key", fordi det oprindelige spørgsmål stillede om at finde "FK_ChannelPlayerSkins_Channels". Siden da har mange mennesker kommenteret på at finde andre "begrænsninger", her er nogle andre spørgsmål til det:

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

her er en alternativ metode

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

Hvis du har brug for endnu flere begrænsningsoplysninger, så kig inde i den systemlagrede procedure master.sys.sp_helpconstraint for at se, hvordan man får visse oplysninger. For at se kildekoden ved hjælp af SQL Server Management Studio, gå ind i "Object Explorer". Derfra udvider du "Master"-databasen, udvider derefter "Programmerbarhed", derefter "Storede Procedures", derefter "System Stored Procedures". Du kan derefter finde "sys.sp_helpconstraint" og højreklikke på det og vælge "modify". Bare vær forsigtig med ikke at gemme ændringer i den. Du kan også bare bruge denne systemlagrede procedure på enhver tabel ved at bruge den som EXEC sp_helpconstraint YourTableNameHere .



  1. SQL joins

  2. PostgreSQL - dynamisk værdi som tabelnavn

  3. Brug af DBCC CLONEDATABASE og Query Store til test

  4. 4 måder at liste visningerne i en SQLite-database