sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo verificar si existe una restricción en el servidor Sql?

prueba esto:

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

-- EDITAR --

Cuando respondí originalmente a esta pregunta, estaba pensando en "Clave externa" porque la pregunta original se refería a encontrar "FK_ChannelPlayerSkins_Channels". Desde entonces, muchas personas han comentado sobre la búsqueda de otras "restricciones", aquí hay algunas otras consultas para eso:

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

aquí hay un método alternativo

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

Si necesita aún más información sobre restricciones, mire dentro del procedimiento almacenado del sistema master.sys.sp_helpconstraint para ver cómo obtener cierta información. Para ver el código fuente con SQL Server Management Studio, acceda al "Explorador de objetos". Desde allí, expanda la base de datos "Maestra", luego expanda "Programabilidad", luego "Procedimientos almacenados", luego "Procedimientos almacenados del sistema". Luego puede encontrar "sys.sp_helpconstraint" y hacer clic con el botón derecho y seleccionar "modificar". Solo tenga cuidado de no guardar ningún cambio en él. Además, puede usar este procedimiento almacenado del sistema en cualquier tabla usándolo como EXEC sp_helpconstraint YourTableNameHere .