Tình huống:
Bạn đang làm việc với tư cách là nhà phát triển SQL Server, bạn được yêu cầu cung cấp một truy vấn sẽ trả về tất cả Ràng buộc duy nhất với Cột, Bảng và Tên lược đồ.Giải pháp:
Chúng ta có thể sử dụng các đối tượng hệ thống để có được danh sách các ràng buộc duy nhất với các cột, bảng và tên lược đồ. Truy vấn dưới đây sẽ trả về cho bạn tất cả các ràng buộc duy nhất với các cột từ cơ sở dữ liệu SQL Server.;WITH CTE_UQ AS ( SELECT t.Table_Schema AS TableSchema ,t.table_name AS TableName ,c.column_name AS ColumnName ,t.constraint_name AS UniqueConstraintName ,t.constraint_type AS ConstraintType FROM information_schema.table_constraints t LEFT JOIN information_schema.key_column_usage c ON t.constraint_catalog = c.constraint_catalog AND t.constraint_schema = c.constraint_schema AND t.constraint_name = c.constraint_name WHERE t.constraint_type = 'UNIQUE' ) SELECT TableSchema ,TableName ,UniqueConstraintName ,ConstraintType ,stuff(( SELECT ',' + ColumnName FROM CTE_UQ i WHERE i.TableSchema = o.TableSchema AND i.TableName = o.TableName AND i.UniqueConstraintName = o.UniqueConstraintName FOR XML path('') ), 1, 1, '') UniqueColumnList FROM CTE_UQ o GROUP BY TableSchema ,TableName ,UniqueConstraintName ,ConstraintType
Tôi đã thực hiện truy vấn trên trên cơ sở dữ liệu và nhận được kết quả bên dưới.
Cách lấy Danh sách cột có Ràng buộc Duy nhất trong Cơ sở dữ liệu SQL Server |
Video Demo:Cách lấy tất cả Ràng buộc duy nhất trong Cơ sở dữ liệu SQL Server với Tên cột