Сценарий:
Вие работите като разработчик на SQL Server, от вас се иска да предоставите заявка, която трябва да върне цялото уникално ограничение с колони, таблица и име на схема.Решение:
Можем да използваме системни обекти, за да получим списък с уникални ограничения с колони, таблици и име на схема. Заявката по-долу ще ви върне всички уникални ограничения с колони от базата данни на 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
Изпълних горната заявка в базата данни и получих резултатите по-долу.
Как да получите списък с колони с уникални ограничения в базата данни на SQL Server |
Видео демонстрация:Как да получите всички уникални ограничения в базата данни на SQL Server с имена на колони