Piszemy nową aplikację, a podczas testowania będziemy potrzebować garstki fałszywych danych. Dodałem te dane za pomocą MS Access, aby zrzucić pliki Excela do odpowiednich tabel.
Co jakiś czas chcemy „odświeżyć” odpowiednie tabele, co oznacza usunięcie ich wszystkich, ponowne utworzenie i uruchomienie zapisanej kwerendy dołączającej MS Access.
Pierwsza część (upuszczanie i ponowne tworzenie) jest łatwym skryptem sql, ale ostatnia część mnie kręci. Chcę jednego skryptu instalacyjnego, który ma kilka INSERTów, aby zregenerować dane pozorowane.
Mam teraz dane w tabelach. Jaki jest najlepszy sposób automatycznego generowania dużej listy instrukcji INSERT z tego zestawu danych?
Jedyny sposób, w jaki mogę to zrobić, to zapisać tabelę w arkuszu programu Excel, a następnie napisać formułę programu Excel, aby utworzyć WSTAW dla każdego wiersza, co z pewnością nie jest najlepszym sposobem.
Korzystam z 2008 Management Studio, aby połączyć się z bazą danych SQL Server 2005.
źródło
Odpowiedzi:
Microsoft powinien zareklamować tę funkcjonalność SSMS 2008. Szukana funkcja jest wbudowana w narzędzie Generuj skrypt , ale funkcja jest domyślnie wyłączona i musi być włączona podczas wykonywania skryptów tabeli.
Jest to szybki przegląd w celu wygenerowania
INSERT
instrukcji dla wszystkich danych w tabeli, bez użycia skryptów ani dodatków do SQL Management Studio 2008:Otrzymasz wtedy
CREATE TABLE
wyciąg i wszystkieINSERT
wyciągi dla danych prosto z SSMS.źródło
Data only
i napotkaszCyclic dependencies found
błąd, przełącz się na,Schema and data
aby uniknąć błędu. Zdarza się w Management Studio v17.Używamy tej procedury składowanej - pozwala ona kierować reklamy na określone tabele i używać klauzul where. Możesz znaleźć tekst tutaj .
Na przykład pozwala to zrobić:
Kod źródłowy skopiowany z linku:
źródło
Jak wspomniano @Mike Ritacco, ale zaktualizowano do SSMS 2008 R2
Otrzymasz wtedy wszystkie instrukcje INSERT dla danych prosto z SSMS.
EDYCJA 2016-10-25 SQL Server 2016 / SSMS 13.0.15900.1
Kliknij prawym przyciskiem myszy nazwę bazy danych
Wybierz Zadania> Generuj skrypty
W zależności od ustawień strona wprowadzająca może się wyświetlać lub nie
Wybierz „Wybierz określone obiekty bazy danych”,
Rozwiń widok drzewa i sprawdź odpowiednie tabele
Kliknij Następny
Kliknij Zaawansowane
W sekcji Ogólne wybierz odpowiednią opcję dla „Typów danych do skryptu”
Kliknij OK
Wybierz, czy dane wyjściowe mają przejść do nowego zapytania, schowka czy pliku
Kliknij dwa razy przycisk Dalej
Twój skrypt jest przygotowany zgodnie z ustawieniami wybranymi powyżej
Kliknij przycisk Zakończ
źródło
Można to zrobić za pomocą
Visual Studio
również za (przynajmniej w wersji 2013 i późniejszych).W VS 2013 można również filtrować listy wierszy, na których opiera się instrukcja inserts, co jest niemożliwe w SSMS, o ile wiem.
Wykonaj następujące czynności:
Spowoduje to utworzenie (warunkowych) instrukcji wstawiania dla wybranej tabeli do aktywnego okna lub pliku.
Przyciski „Filtr” i „Skrypt” Visual Studio 2013 :
źródło
Możesz użyć SSMS Tools Pack (dostępny dla SQL Server 2005 i 2008). Posiada funkcję generowania instrukcji insert.
http://www.ssmstoolspack.com/
źródło
Używam SSMS 2008 w wersji 10.0.5500.0. W tej wersji jako część kreatora Generuj skrypty, zamiast przycisku Zaawansowane, znajduje się poniższy ekran. W tym przypadku chciałem tylko wstawić dane i nie tworzyć instrukcji, więc musiałem zmienić dwie zakreślone właściwości
źródło
Procedura składowana Jane Dallaway: http://docs.google.com/leaf?id=0B_AkC4ZdTI9tNWVmZWU3NzAtMWY1My00NjgwLWI3ZjQtMTY1NDMxYzBhYzgx&hl=pl . Dokumentacja to seria postów na blogu: https://www.google.com/search?q=spu_generateinsert&as_sitesearch=http%3A%2F%2Fjane.dallaway.com
źródło
Jeśli potrzebujesz dostępu programowego, możesz użyć procedury składowanej typu open source `GenerateInsert.
Generator instrukcji INSERT
Jako prosty i szybki przykład, aby wygenerować instrukcje INSERT dla tabeli,
AdventureWorks.Person.AddressType
wykonaj następujące instrukcje:Spowoduje to wygenerowanie następującego skryptu:
źródło
Pierwszy link do sp_generate_inserts jest całkiem fajny, oto naprawdę prosta wersja:
W moim systemie otrzymuję ten wynik:
źródło
Mój wkład w rozwiązanie problemu to generator skryptów Powershell INSERT, który umożliwia pisanie skryptów w wielu tabelach bez konieczności korzystania z uciążliwego interfejsu GUI SSMS. Idealne do szybkiego utrzymywania danych „seedowych” w kontroli źródła.
Domyślnie generowanym skryptem INSERT będzie „SeedData.sql” w tym samym folderze co skrypt.
Będziesz potrzebował zainstalowanych zestawów SQL Server Management Objects, które powinny tam być, jeśli masz zainstalowany SSMS.
źródło
Nie używaj wstawek, używaj BCP
źródło
Być może możesz wypróbować SQL Server Publishing Wizard http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en
Ma kreatora, który pomaga skryptowi wstawiać instrukcje.
źródło
GenerateData to niesamowite narzędzie do tego. Wprowadzanie drobnych poprawek jest również bardzo łatwe, ponieważ dostępny jest kod źródłowy. Kilka fajnych funkcji:
źródło
Użyłem tego skryptu, który umieściłem na moim blogu ( instrukcje generowania instrukcji Insert na serwerze SQL ).
Do tej pory działało dla mnie, chociaż mogą to być błędy, których jeszcze nie odkryłem.
źródło
Używam do tego sqlite. Uważam to za bardzo, bardzo przydatne do tworzenia baz danych / testów.
sqlite3 foo.sqlite .dump > foo_as_a_bunch_of_inserts.sql
źródło
Czy masz już dane w produkcyjnej bazie danych? Jeśli tak, możesz ustawić okresowe odświeżanie danych przez DTS. Robimy co tydzień w weekendy i bardzo miło jest mieć czyste, prawdziwe dane co tydzień do naszych testów.
Jeśli nie masz jeszcze produkcji, powinieneś utworzyć bazę danych, która będzie taka, jakiej chcesz (świeża). Następnie zduplikuj tę bazę danych i użyj nowo utworzonej bazy danych jako środowiska testowego. Jeśli chcesz mieć czystą wersję, po prostu powtórz ją, a Bob jest wujem .
źródło
Jeśli wolisz korzystać z Arkuszy Google, użyj SeekWell aby wysłać tabelę do arkusza, a następnie wstaw wiersze zgodnie z harmonogramem, gdy zostaną dodane do arkusza.
Zobacz tutaj krok po kroku lub obejrzyj prezentację wideo tej funkcji tutaj.
źródło
Istnieje wiele dobrych skryptów powyżej do generowania instrukcji insert, ale próbowałem jednego z moich, aby uczynić go tak przyjaznym dla użytkownika, jak to możliwe, a także móc wykonywać instrukcje UPDATE. + spakuj wynik gotowy do plików .sql, które można zapisać według daty.
Pobiera jako dane wejściowe normalną instrukcję SELECT z klauzulą WHERE, a następnie wyświetla listę instrukcji Insert i instrukcji aktualizacji. Razem tworzą one rodzaj JEŻELI NIE ISTNIEJE () INSERT ELSE UPDATE Jest to również przydatne, gdy istnieją kolumny, których nie można aktualizować, i które wymagają wyłączenia z ostatecznej instrukcji INSERT / UPDATE.
Inną rzeczą, którą może wykonać poniższy skrypt: może nawet obsługiwać WEJŚCIA WEWNĘTRZNE z innymi tabelami jako instrukcją wejściową dla przechowywanego proc. Może być przydatny jako narzędzie do zarządzania wydaniami biednego człowieka, które znajduje się na wyciągnięcie ręki, gdzie przez cały dzień wpisujesz instrukcje SQL SELECT.
oryginalny post: Wygeneruj instrukcję UPDATE w SQL Server dla określonej tabeli
źródło
dlaczego nie wykonać kopii zapasowej danych przed rozpoczęciem pracy z nimi, a następnie przywrócić je, gdy chcesz je odświeżyć?
jeśli musisz wygenerować wstawki, spróbuj: http://vyaskn.tripod.com/code.htm#inserts
źródło
Nie jestem pewien, czy dobrze rozumiem twoje pytanie.
Jeśli masz dane w MS-Access, które chcesz przenieść do SQL Server - możesz użyć DTS.
I myślę, że można użyć profilera SQL, aby zobaczyć wszystkie instrukcje INSERT, jak sądzę.
źródło
Dużo na ten temat badałem, ale nie mogłem znaleźć konkretnego rozwiązania tego problemu. Obecnie moim podejściem jest kopiowanie zawartości w programie Excel z programu SQL Server Managment studio, a następnie importowanie danych do Oracle-TOAD, a następnie generowanie instrukcji insert
źródło
Za pomocą tej prostej i darmowej aplikacji, którą napisałem kilka lat temu, możesz wygenerować instrukcję INSERT lub MERGE : Data Script Writer (aplikacja komputerowa dla systemu Windows)
Ostatnio napisałem też post na blogu o tych narzędziach i podejściu do wykorzystania SSDT do wdrożenia bazy danych z danymi. Dowiedz się więcej:
Skrypty i wdrażanie danych dla bazy danych z projektu SSDT
źródło
Zrobiłem prosty w użyciu narzędzie, mam nadzieję, że Ci się spodoba.
Jeżeli generowany INSERT są obcinane, sprawdzić długość tekstu granica wyników na opcje Management Studio:
Tools > Options
,Query Results > SQL Server > Results to Grid
, „Non danych XML” wartość pozycji „Maksymalna liczba znaków Źródło”.źródło