В соответствии с вашим примером вам нужно отсортировать по двум полям (фамилия, имя), а не по одному. Вы можете использовать библиотеку Alasql , чтобы сделать этот вид в одной строке:
var res = alasql('SELECT * FROM ? ORDER BY last_nom, first_nom',[objs]);
Попробуйте этот пример в jsFiddle .
Я нахожу, что UDFs очень удобны, и я использую их все время.
я не уверен, что объяснение Microsoft для не включая sys.functions эквивалент в SQL Server 2005 (или SQL Server 2008, насколько я могу сказать), но это достаточно легко к самокрутке:
CREATE VIEW my_sys_functions_equivalent
AS
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF') -- scalar, inline table-valued, table-valued
Это является очень немного более подробным, но это должно сделать точно то же самое:
select * from sys.objects where (type='TF' or type='FN')
, Насколько я вижу, это не находится в SQL Server 2008 также.
Другой способ перечислить функции состоит в том, чтобы использовать представления INFORMATION_SCHEMA.
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION'
Согласно представлениям информационной схемы "Веб-сайта Microsoft обеспечивают внутреннее, независимое от системной таблицы представление метаданных SQL Server. Представления информационной схемы позволяют приложениям работать правильно, хотя существенные изменения были внесены в базовые системные таблицы". Другими словами, базовые Системные таблицы могут измениться, поскольку SQL обновлен, но представления должны все еще остаться тем же.
кстати, разве вы не хотите включить type = 'FS'?
name type type_desc
getNewsletterStats FS CLR_SCALAR_FUNCTION
это то, чему соответствует элемент в sys.objects для моего UDF, полученного из внешней DLL