Mam SQL Server 2008
SQL Server Management Studio.
Muszę wybrać dane z Table1
bazy danych database1. Następnie muszę edytować niektóre wartości w wynikach i insert values into Table1
database2.
Albo pozwólcie, że przedstawię to inaczej.
Jak mogę przekonwertować dane w jednej tabeli na insert script
.
sql
sql-server
sql-server-2008
ssms
Kapitan Komiks
źródło
źródło
Odpowiedzi:
Pakiet narzędzi SSMS (który jest BEZPŁATNY jak w piwie) ma wiele wspaniałych funkcji - w tym generowanie instrukcji INSERT z tabel.
Aktualizacja: w przypadku programu SQL Server Management Studio 2012 (i nowszych) pakiet narzędzi SSMS nie jest już bezpłatny, ale wymaga niewielkiej opłaty licencyjnej.
źródło
Oto inna metoda, która w niektórych sytuacjach może być łatwiejsza niż instalacja wtyczek lub narzędzi zewnętrznych:
select [whatever you need]
INTO temp.table_name
from [... etc ...]
temp.table_name
na ekranie „Wybierz obiekty”, kliknij Dalej.INSERT
instrukcje pojawiają się w nowym oknie zapytania.[temp.table_name]
na[your_table_name]
.drop table [temp.table_name]
.źródło
temp
tutaj odnosi się do dowolnego schematu, do którego masz dostęp. Możesz albo utworzyć jeden (create schema temp
), a następnie usunąć go, gdy skończysz, lub (lepiej) po prostu użyć dowolnego schematu, w którym aktualnie pracujesz.W SSMS:
Kliknij prawym przyciskiem myszy bazę danych> Zadania> Generuj skrypty
Kolejny
Wybierz „Wybierz określone obiekty bazy danych” i zaznacz tabelę, którą chcesz skrypty, Dalej
Kliknij
Advanced >
listę opcji, przewiń w dół i poszukaj opcji „Typy danych do skryptu” i zmień ją na „Tylko dane”> OKWybierz „Zapisz w nowym oknie zapytania”> Dalej> Dalej> Zakończ
Wszystkie 180 wierszy jest teraz zapisanych jako 180 instrukcji wstawiania!
źródło
Metoda natywna :
na przykład jeśli masz stół
Możesz to zrobić:
źródło
1- Wyjaśnienie skryptów
A) Składnia wstawiania danych do tabeli jest następująca
C) Aby uzyskać powyższe dane z istniejącej tabeli musimy napisać zapytanie wybierające w taki sposób, aby wynik miał postać jak wyżej wymienionych skryptów
D) Wreszcie mam Concatenated powyżej zmiennej, aby utworzyć ostateczny skrypt, który wygeneruje skrypt wstawiania podczas wykonywania
MI)
F) I wreszcie wykonałem powyższe zapytanie
EXECUTE(TEXT)
QUOTENAME()
Funkcja G) służy do zawijania danych kolumny wewnątrz cudzysłowuH)
ISNULL
jest używany, ponieważ jeśli którykolwiek wiersz zawieraNULL
dane dla dowolnej kolumny, zapytanie kończy się niepowodzeniem i zwracaNULL
, dlaczego, aby tego uniknąć, użyłemISNULL
I) I stworzyłem sp
sp_generate_insertscripts
dla tego samego1- Po prostu wpisz nazwę tabeli, dla której chcesz
insert script
2- Warunek filtru, jeśli chcesz uzyskać konkretne wyniki
źródło
Można to zrobić za pomocą Eksploratora obiektów programu Visual Studio SQL Server.
Możesz kliknąć „Wyświetl dane” z menu kontekstowego dla potrzebnej tabeli, przefiltrować wyniki i zapisać wynik jako skrypt.
źródło
Korzystając z programu Visual Studio, wykonaj następujące czynności
Utwórz projekt typu SQL Server -> Projekt bazy danych programu SQL Server
otwórz eksplorator serwera sql CTL- \, CTL-S
dodaj SQL Server, klikając prawym przyciskiem myszy ikonę SQL SERVER. Selcet DODAJ NOWY SERWER
przejdź w dół do tabeli, która Cię interesuje
prawy przycisk myszy -> WYŚWIETL DANE
Kliknij lewą górną komórkę, aby podświetlić wszystko (ctl-A nie wydaje się działać)
Kliknij prawym przyciskiem myszy -> SCript
To jest wspaniałe. Przez lata próbowałem wszystkiego, co wymieniono powyżej. Wiem, że istnieje narzędzie, które zrobi to i wiele więcej, nie mogę wymyślić jego nazwy. Ale to jest bardzo drogie.
Powodzenia. Właśnie to rozgryzłem. Nie testowałem go szczegółowo z polami tekstowymi itp., Ale wygląda na to, że zabiera Cię to daleko w dół.
Greg
źródło
Utwórz oddzielną tabelę za pomocą instrukcji into Na przykład
Wybierz * do Test_123 z [dbo]. [Pracownik], gdzie Nazwa taka jak „% Test%”
Przejdź do bazy danych Kliknij prawym przyciskiem myszy w bazie danych Kliknij na Generuj skrypt Wybierz swoją tabelę Wybierz opcję Advanace i wybierz Atrybut "Tylko dane" Wybierz plik "Otwórz w nowym zapytaniu"
Sql wygeneruje dla Ciebie skrypt
źródło
Możesz wybrać opcję `` Wynik do pliku '' w SSMS i wyeksportować wybrany wynik do pliku i wprowadzić zmiany w pliku wyników, a na koniec za pomocą BCP - Kopia zbiorcza, którą możesz wstawić do tabeli 1 w bazie danych 2.
Myślę, że w przypadku wstawiania zbiorczego musisz przekonwertować plik .rpt na plik .csv
Mam nadzieję, że to pomoże.
źródło
Miałem podobny problem, ale potrzebowałem móc stworzyć instrukcję INSERT z zapytania (z filtrami itp.)
Stworzyłem więc następującą procedurę:
Możesz go następnie użyć, zapisując dane wyjściowe zapytania w tabeli tymczasowej i uruchamiając procedurę:
Uwaga: Ta procedura tylko rzutuje wartości na ciąg, co może spowodować, że dane będą wyglądać nieco inaczej. Na przykład w przypadku DATETIME sekundy zostaną utracone.
źródło
Jest to bardziej wszechstronne rozwiązanie (które może zrobić trochę więcej niż zadaje pytanie) i może być używane w oknie zapytania bez konieczności tworzenia nowego przechowywanego procesu - przydatne w produkcyjnych bazach danych na przykład, gdy nie masz uprawnień do zapisu .
Aby użyć kodu, zmodyfikuj go zgodnie z komentarzami w wierszu, które wyjaśniają jego użycie. Następnie możesz po prostu uruchomić to zapytanie w oknie zapytania, a wydrukuje ono wymagane instrukcje INSERT.
źródło
Można używać pakietów usług integracji serwera Sql zaprojektowanych specjalnie do operacji importu i eksportu .
VS ma pakiet do tworzenia tych pakietów, jeśli w pełni zainstalujesz serwer Sql.
Usługi integracji w Business Intelligence Development Studio
źródło
Myślę, że jest to również możliwe dzięki zapytaniom adhoc, możesz wyeksportować wynik do pliku Excela, a następnie zaimportować ten plik do obiektu datatable lub użyć go tak, jak jest, a następnie zaimportować plik Excela do drugiej bazy danych, spójrz na ten link, który może ci pomóc dużo.
http://vscontrols.blogspot.com/2010/09/import-and-export-excel-to-sql-server.html
źródło
Stworzyłem
procedure
:Następnie możesz to wykorzystać w ten sposób:
Wynik byłby taki:
Jeśli chcesz tylko uzyskać zakres wierszy, użyj
@top
parametru w następujący sposób:źródło
Jeśli używasz Oracle (lub konfigurujesz aplikację do SQL Server), Oracle SQL Developer zrobi to za Ciebie. wybierz „unload” dla tabeli i postępuj zgodnie z opcjami (odznacz DDL, jeśli nie chcesz, aby cała tabela tworzyła rzeczy).
źródło
Znalazłem ten dodatek SMSMS Boost , który jest darmowy i robi dokładnie to między innymi. Możesz kliknąć prawym przyciskiem myszy wyniki i wybrać Dane skryptu jako.
źródło
Możesz użyć tego Q2C.SSMSPlugin , który jest darmowy i open source. Możesz kliknąć prawym przyciskiem myszy i wybrać "Wykonaj zapytanie do polecenia ... -> Zapytanie do wstawienia ...". Cieszyć się)
źródło
Możesz użyć
INSERT INTO SELECT
instrukcji, aby wstawić wyniki zapytania wybierającego do tabeli.http://www.w3schools.com/sql/sql_insert_into_select.aspPrzykład:
źródło