constantes de valor máximo inteiro no servidor SQL T-SQL?

Existem algumas constantes em T-SQL como existem em algumas outras línguas que fornecem as gamas de valores max e min de tipos de dados como int?

eu tenho uma tabela de códigos onde cada linha tem uma coluna de intervalo superior e inferior, e eu preciso de um item que represente um intervalo onde o intervalo superior é o valor máximo que um int pode segurar(como uma infinidade hackish). Eu preferiria não codificá-lo e em vez disso usar algo como SET UpperRange = int.Max

Author: OMG Ponies, 2010-04-30

3 answers

Existem duas opções:

  • função escalar definida pelo utilizador
  • Tabela de Propriedades

No Oracle, você pode fazê - lo dentro de Pacotes-O servidor SQL mais próximo tem Conjuntos...

 11
Author: OMG Ponies, 2017-03-15 10:43:46

Acho que não há nenhuma constante definida, mas você mesmo poderia defini-la armazenando os valores numa tabela ou usando uma função escalar.

Quadro

Configurar uma tabela que tenha três colunas: Nome do tipo, Max e Min. Assim só temos de os povoar uma vez.

Função De Avaliação Escalar

Em alternativa, poderá usar as funções getmaxint () do valor escalar por exemplo (veja esta resposta do StackOverflow para uma resposta real exemplo.

Pode encontrar aqui todos os valores máximos/mínimos: http://msdn.microsoft.com/en-us/library/ms187752.aspx

 7
Author: vfilby, 2017-05-23 11:53:50
Evite funções escalares como a peste.:
problema de desempenho UDF escalar

Dito isto, não usaria a tabela de 3 colunas sugerida por outra pessoa.
Isso causaria conversões implícitas em quase todos os lugares que você usaria.
Você também teria que se juntar à mesa várias vezes se você precisava usá-lo para mais de um tipo.

Em vez disso, ter uma coluna para cada Min e Max de cada tipo de dados (definido usando o seu próprio tipo de dados) e chamá-los diretamente comparar.

Exemplo:
SELECT *
  FROM SomeTable as ST
  CROSS JOIN TypeRange as TR
  WHERE ST.MyNumber BETWEEN TR.IntMin  AND TR.IntMax
 3
Author: MikeTeeVee, 2014-02-14 00:46:22