Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é o propósito da tabela do sistema master..spt_values ​​e quais são os significados de seus valores?


Os spt_values table não é mencionado na documentação do SQL Server, mas remonta aos dias do Sybase e há uma documentação extremamente mínima nos documentos online do Sybase que podem ser resumidas neste comentário:

Para ver como ele é usado, execute sp_helptext e observe o texto de um dos procedimentos do sistema que o referencia.

Em outras palavras, leia o código e resolva você mesmo.

Se você vasculhar os procedimentos armazenados do sistema e examinar os dados da tabela em si, fica bastante claro que a tabela é usada para traduzir códigos em strings legíveis (entre outras coisas). Ou, como a documentação do Sybase vinculada acima coloca, "para converter valores internos do sistema [...] em formato legível por humanos"

A tabela às vezes também é usada em trechos de código em blogs do MSDN - mas nunca em documentação formal - geralmente como uma fonte conveniente de uma lista de números. Mas, como discutido em outro lugar, criar sua própria fonte de números é uma solução mais segura e confiável do que usar uma tabela de sistema não documentada. Existe até uma solicitação Connect para fornecer uma tabela numérica 'adequada' e documentada no próprio SQL Server.

De qualquer forma, a tabela é totalmente não documentada, então não há valor significativo em saber nada sobre ela, pelo menos do ponto de vista prático:o próximo servicepack ou atualização pode alterá-la completamente. A curiosidade intelectual é outra coisa, claro :-)