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.
1
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
Wszystko się zgadza w tabeli "Person_tmp" znajduje się 273 rekordy.