SQL SELECT INTO

W tym wpisie opiszę Wam zastosowanie składni SELECT INTO, która służy do kopiwania danych (kolumn) z jednej tabeli do drugiej tabeli. Bez zbędnych wstępów poniżej prezentuję Wam składnię takiej konstrukcji. Dobrą rzeczą jest to, że nie musimy mieć utworzonej tabeli_docelowej, zostanie ona utworzona automatycznie w chwili uruchomienia zapytania.


    


Składnia SELECT INTO

SELECT
    * — * oznacza wszystkie kolumny
INTO
    nowa_tabela
FROM
    tabela_źródłowa
— opcjonalnie warunek po WHERE
WHERE
    warunek(-ki)


Przykład zastosowania SELECT INTO (baza: Adventureworks2008R2)

No to przechodzimy do przykładu i na warsztat bieżemy bazę AdventureWorks2008R2.

Będziemy kopiowali dane z tabeli "Person.Person" (osoby o typie EM czyli Employees/Pracownicy) do tabeli "Person_tmp". W tym celu zbudujemy zapytanie.

SELECT
    *
INTO
    Person_tmp
FROM
    Person.Person
WHERE
    PersonType = 'EM'

Uruchamiamy zapytanie (F5) i powinniśmy otrzymać informację, że wszystko wykonało się poprawnie.

SQL SELECT INTO1

Widzimy, że konsturkcja wykonała się poprawnie i w tym momencie powinniśmy mieć nową tabelę o nazwie "Person_tmp" (najprawdopodobniej żeby ją zobaczyć musisz odświeżyć, strukturę bazy AdventureWorks2008R2 w drzewie baz danych, w tym celu klikasz prawym przyciskiem myszy na bazie AdventureWorks2008R2 i z menu wybierasz opcję Refresh) w której powinno znajdować się 273 rekordów które zostały do niej skopiowane.

Sprawdzamy to zapytaniem

SELECT
    *
FROM
    Person_tmp

Wynik


SQL SELECT INTO

Wszystko się zgadza w tabeli "Person_tmp" znajduje się 273 rekordy.