Como controlar a capacidade de anulação em SELECT INTO para colunas baseadas em literais

Eu estou percebendo que quando eu uso esta declaração,Action a coluna não é anulável:

SELECT TOP 0 SerialNumber, 0 [Action] INTO #MyTable FROM FSE_SerialNumber

Mas quando eu uso essa declaração, oAction a coluna é anulável:

SELECT TOP 0 SerialNumber, CAST(0 as int) [Action] INTO #MyTable FROM FSE_SerialNumber

Meu motivo para criar a tabela dessa maneira é porque não quero que a tabela temporária herde o agrupamento de SerialNumber do agrupamento padrão do servidor ou em outro local. Eu quero que corresponda ao agrupamento de FSE_SerialNumber..SerialNumber.

Minha pergunta é, posso confiar na função de elenco que me dá uma coluna anulável, ou isso não está claramente definido e pode mudar. Por que o elenco torna a coluna anulável? Existe uma maneira melhor (além de comentários) para esclarecer que minha intenção é obter uma coluna anulável lá?

questionAnswers(3)

yourAnswerToTheQuestion