Dual na SQL Serwerze ? Tworzenie tabeli poprzez zapisanie do niej wyniku selecta?



To porównanie SQL Serwera z Oracle.
Przygotowywałem materiał na kolejny wpis, ale już działający, uruchamiany na SQL Serwerze i chciałem wykorzystać możliwość utworzenia tabel nie poprzez nazwy pól i definicje typów danych, ale poprzez zapisanie wyniku „selecta” jako tabeli.
Na ORACLE konieczne jest wybranie przykładowych danych oraz musi być zachowana struktura select …. from nazwa_tabeli;
To na czerwonym musi być, dlatego wykorzystuje się tabelę dual mającą jedną wartość i działa, czyli stosuje się chwyt:
create table przyklad
 as select
 23 liczba
 , 'Platynowa' ulica
from dual;
Taki prosty chwyt powoduje, iż powstaje tabela w tym przypadku nazwana przyklad, ma dwa pola: liczba, ulica, jest od razu jeden rekord danych – wartości: 23, Platynowa. I jest to mym zdaniem intuicyjne. Po prostu widać, iż tworzymy tabelę a do niej ładujemy dane, jeden rekord.
Na SQL Serwerze ten sam efekt uzyskamy ale tak:
select
 23 liczba
 , 'Platynowa' ulica
 into  przyklad;
Tak, powstanie tabela przyklad, ale można się nieco być zaskoczonym, no nie? Na obrazku widać, iż zadziałało J
A dual jest też zbędny na SQL Serwerze:
select 1 liczba;
zostanie wykonane, from tabela jest zbędne, co widać na drugim obrazku.
A już w najbliższy weekend nieco bardziej złożona sprawa będzie przedstawiona.
Pozdrawiam,
W



Brak komentarzy:

Prześlij komentarz