Я прочитал here (и в другом месте), что в SQL Server 2008 возможно построить пользовательский агрегат, который может вернуть строку длиной более 8000 символов. Это именно то, что мне нужно.Пользовательский агрегат в SQL Server 2008 - Как развернуть с помощью MaxByteSize = -1?
Предположительно, метод заключается в том, чтобы установить maxByteSize в -1 вместо числа btw 1 и 8000; это должно допускать размеры до 2 ГБ.
По какой-то причине, по-видимому, вы не можете установить прямо из Visual Studio 2008, если вы используете этот параметр; поэтому вам нужно вручную развернуть.
Итак: Я строю свой проект - GroupConcat (который должен имитировать агрегатор MySQL group_concat), который дает мне в папке bin файла файл «SqlClassLibrary.dll». В соответствии с инструкциями на вышеперечисленной странице я создаю сборку в SQL Server. Команда выполняется успешно. Однако, когда я пытаюсь на самом деле использования groupconcat агрегатор:
select department, dbo.groupconcat(projectNumber) from projectleads group by department
... он говорит, что это не может быть найден. Все это работает отлично, если я устанавливаю maxByteSize на 8000 и развертываю непосредственно из VS2008, но мне нужно> 8000. Кто-нибудь знает, что я делаю неправильно?
Благодаря -дан
Примечание: я специально нужно иметь функцию groupconcat агрегатор, а не использовать некоторые трюки SQL Server я часто видел.
Очень полезно знать. +1. Благодаря! – DanM