Как контролировать обнуляемость в SELECT INTO для литеральных столбцов

Я замечаю, что когда я использую это утверждение,Action столбец не обнуляется:

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

Но когда я использую это утверждение,Action столбец обнуляемый:

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

Моя причина создания таблицы таким образом состоит в том, что я не хочу, чтобы временная таблица наследовала параметры сортировки SerialNumber из параметров сортировки по умолчанию сервера или где-либо еще. Я хочу, чтобы он соответствовал параметрам сортировки FSE_SerialNumber..SerialNumber.

Мой вопрос заключается в том, могу ли я полагаться на функцию приведения, дающую мне обнуляемый столбец, или это неясно определено и может измениться. Почему бросок внезапно делает столбец обнуляемым? Есть ли лучший способ (помимо комментариев) уточнить, что мое намерение состоит в том, чтобы получить пустую колонку там?

Ответы на вопрос(3)

Ваш ответ на вопрос