hãy thử cái này:
SELECT
*
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME ='FK_ChannelPlayerSkins_Channels'
- CHỈNH SỬA -
Khi tôi trả lời câu hỏi này ban đầu, tôi nghĩ là "Khoá ngoại" vì câu hỏi ban đầu hỏi về việc tìm "FK_ChannelPlayerSkins_Channels". Kể từ đó, nhiều người đã nhận xét về việc tìm kiếm các "ràng buộc" khác, đây là một số truy vấn khác cho điều đó:
--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'
đây là một phương pháp thay thế
--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'
Nếu bạn cần thêm thông tin ràng buộc, hãy xem bên trong quy trình được lưu trữ trong hệ thống master.sys.sp_helpconstraint
để xem làm thế nào để có được một số thông tin nhất định. Để xem mã nguồn bằng SQL Server Management Studio, hãy vào "Object Explorer". Từ đó bạn mở rộng cơ sở dữ liệu "Master", sau đó mở rộng "Khả năng lập trình", sau đó là "Thủ tục được lưu trữ", sau đó là "Thủ tục được lưu trữ hệ thống". Sau đó, bạn có thể tìm thấy "sys.sp_helpconstraint" và nhấp chuột phải vào nó và chọn "sửa đổi". Chỉ cần cẩn thận để không lưu bất kỳ thay đổi nào vào nó. Ngoài ra, bạn chỉ có thể sử dụng quy trình được lưu trữ hệ thống này trên bất kỳ bảng nào bằng cách sử dụng nó như EXEC sp_helpconstraint YourTableNameHere
.