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?