С помощью этого запроса я получаю список всех ограничений базы данных моей базы данных CHECK
, FOREIGN_KEY
, PRIMARY_KEY
и UNIQUE_KEY
.Получить список ограничений SQL Server без избыточности
SELECT
o.object_id as ID, o.name AS Name,
OBJECT_NAME(o.parent_object_id) AS TableName,
o.type_desc AS TypeName,
cs.COLUMN_NAME as ColumnName
FROM
sys.objects o
LEFT JOIN
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cs ON o.name = cs.CONSTRAINT_NAME
WHERE
o.type = 'C' or o.type = 'F' or o.type = 'PK' or o.type = 'UQ'
Однако есть некоторые из них со многими «ColumnName», и я хочу это сделать.
Например:
'PK_ENTITE_SIGN_DOSSIER_ID_DOSSIER_ID_ENTITE_ID_GROUPE_SIGN_ID_PERSONNE_ID_SCHEMA'
является PRIMARY_KEY
на столе ENTITE_SIGN_DOSSIER
и содержит ID_DOSSIER
, ID_ENTITE
, ID_GROUPE_SIGN
, ID_PERSONNE
и ID_SCHEMA
(5 столбцов) и в этом случае мой запрос возврата 5 строк для этого ограничения.
Как можно связать имена этих столбцов с результатами запроса?
Большое спасибо за вашу помощь
Простой поиск в вашей любимой поисковой системы на «StackOverflow значений конкатенации строк SQL Server», даст много примеров о том, как объединить имена столбцов. Первые два примера, которые я нашел, должны пролить свет на это: [1] (https://stackoverflow.com/questions/1874966/concatenate-row-values-t-sql) и [2] (https://stackoverflow.com/вопросы/5196371/SQL-запрос конкатенации-результаты, в-один-строка). –