Jak kontrolować dopuszczalność nullable w SELECT INTO dla kolumn opartych na literałach

Zauważam, że kiedy używam tego oświadczenia,Action kolumna nie jest pusta:

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

Ale kiedy używam tego stwierdzenia,Action kolumna jest pusta:

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

Powodem utworzenia tabeli w ten sposób jest to, że nie chcę, aby tabela tymczasowa dziedziczyła sortowanie numeru seryjnego z domyślnej sortowania serwera lub w innym miejscu. Chcę, aby pasował do porównania FSE_SerialNumber..SerialNumber.

Moje pytanie brzmi: czy mogę polegać na funkcji rzutowania, która daje mi kolumnę, która jest pusta, czy też nie jest to jasno określone i może się zmienić. Dlaczego obsada nagle sprawia, że ​​kolumna jest pusta? Czy jest lepszy sposób (poza komentarzami) na wyjaśnienie, że moim zamiarem jest zdobycie tam kolumny, która może być pusta?

questionAnswers(3)

yourAnswerToTheQuestion