Какова цель системных таблиц master..spt_values ​​и каковы значения его значений?

Какова цель системного мастера таблицы? spt_values?
Почему он был предоставлен и как его следует использовать?

Каковы значения его типа, низкие, высокие значения?

Обновление:
Поиск в Google дает тысячи "своих целей", например:

Ответ 1

Таблица spt_values не упоминается в документации SQL Server, но возвращается к дням Sybase и существует крайне минимальная документация в онлайн-документах Sybase, которые можно суммировать в этом комментарии:

Чтобы узнать, как он используется, выполните sp_helptext и посмотрите текст для одна из системных процедур, которая ссылается на нее.

Другими словами, прочитайте код и выполните его сами.

Если вы выкалываете системные хранимые процедуры и просматриваете сами данные таблицы, довольно ясно, что таблица используется для перевода кодов в читаемые строки (между прочим). Или, как указано в документации Sybase, связанной выше, "для преобразования внутренних системных значений [...] в удобочитаемый формат"

Таблица также иногда используется в фрагментах кода в блогах MSDN - но никогда в официальной документации - обычно как удобный источник списка номера. Но, как обсуждалось в в другом месте, создание собственного источника чисел является более безопасным и надежным решением, чем использование недокументированной системной таблицы. Существует даже запрос Connect, чтобы обеспечить "правильную", задокументированную таблицу номеров в самом SQL-сервере.

В любом случае, таблица полностью недокументирована, поэтому нет никакой значимой ценности, зная об этом, по крайней мере, с практической точки зрения: следующий служебный пакет или обновление могут полностью его изменить. Разумеется, интеллектуальное любопытство - это что-то другое: -)

Ответ 2

В основном ответили в другом вопросе.

Каковы значения его типа, низкие, высокие значения?

Большинство типов (т.е. каждая конкретная таблица поиска, если они являются отдельными) требуют либо имени, либо номера. Для некоторых типов требуются столбцы Low и High. В Sybase у нас есть столбец ErrorNumber, поэтому sproc может RAISERROR, который не является жестко запрограммированным (могут быть изменения с версиями и т.д.).

Это не "загадочный", если только перечислимый список не является "загадочным"; это просто таблица поиска (все они, дифференцированные столбцом "Тип" ).

Ответ 3

Одно использование, определенно не его основное использование, должно генерировать ряд чисел:

--Generate a series from 1 to 100
SELECT
    TOP 100
    ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNum
FROM master.dbo.spt_values ORDER BY RowNum