Я хотел бы создать представление в SQL Server, которое объединяет несколько частей метаданных базы данных.
Один кусок метаданных, которые я хочу, содержится в таблице sys.syscomments
- соответствующие столбцы следующие:
id colid text
---- ------ -------------
1001 1 A comment.
1002 1 This is a lo
1002 2 ng comment.
1003 1 This is an e
1003 2 ven longer c
1003 3 omment!
Как видно, данные в столбце «текст» разбиваются на несколько строк, если они проходят максимальную длину (8000 байт / 4000 символов в SQL Server, 12 символов в моем примере). colid
определяет порядок, в котором текст собирается обратно.
Я хотел бы сделать запрос / подзапрос на мой взгляд, чтобы собрать комментарии из таблицы sys.syscomments, чтобы у меня было:
id comment (nvarchar(max))
---- ----------------------------------
1001 A comment.
1002 This is a long comment.
1003 This is an even longer comment!
Есть предложения или решения? Скорость ни в коем случае не критична, но простота и низкое влияние есть (я хотел бы избегать функций CLR и тому подобного - в идеале все это будет заключено в определение представления). Я рассмотрел некоторые предложения на основе XML, но в результате был получен текст, заполненный escape-строками XML.