Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

SQL - jak uruchomić skrypt?

vviking 26 Sie 2013 14:14 4905 5
  • #1 26 Sie 2013 14:14
    vviking
    Poziom 10  

    Mam pytanie z tej samej "beczki".
    W przeciwieństwie do przedmówcy mam już utworzoną baze z wieloma tabelami. Mój problem polega na tym, że chciałbym w pliku txt napisać skrypt, który będę wczytywał w slq aby wykonać wiele zapytań jedno po drugim "na raz".
    Tłumacz:
    1 - chce wyciągnąć pewne dane selectem
    2 - wyciągnięte dane chce przenieść do innej tabeli
    3 - chce usunąć niepotrzebną tabele
    i to wszystko w tej kolejności miałoby być wykonywane przez sql. Nie wiem jak oddzielić od siebie zapytania aby sql je "łyknął" i zaczął wykonywać.
    Pojedyncze zapytania wczytane z pliku txt działają, niestety nie kilka na raz oddzielonych średnikami znajdujących się w jednym pliku :/

    0 5
  • #2 26 Sie 2013 19:28
    Dżyszla
    Poziom 42  

    Zależy od silnika bazy danych oraz użytych metod do wykonania. JEdnak zdecydowana większość radzi sobie z takim przetwarzaniem. Czasem są to specjalne narzędzia, czasem specjalna konstrukcja zapytań, a czasem nic specjalnego...
    Po stronie klienta jednak często wywołanie wielu zapytań wymaga stosowania innych poleceń.

    0
  • #3 26 Sie 2013 21:43
    23844
    Użytkownik usunął konto  
  • #5 26 Sie 2013 23:01
    23844
    Użytkownik usunął konto  
  • #6 27 Sie 2013 08:02
    cepelia
    Poziom 20  

    No nie wiem... wydaje mi się że są przynajmniej 3 wyjścia... pierwsze wyjście to generowanie zapytania dynamicznie, choć nie polecam bo takie zapytania są mało odporne na ataki, drugie wyjście to tworzenie skryptu w pliku txt co wydaje mi się jeszcze gorszym rozwiązanie z gatunku "nie ucz się dziadostwa wiąż drutem..." i trzecie to utworzenie sobie na serwerze StoredProcedure lub funkcji i używanie jej oczywiście z odpowiednimi parametrami...

    Dane oczywiście możesz wyciągać selectem do tabeli tymczasowej ale nie bardzo rozumiem zdanie " chce usunąć niepotrzebną tabele " no bo skoro są niepotrzebne to ich tam nie powinno być...

    poza tym podanie większej liczby szczegółów (np. skryptu tabeli, szkicu oczekiwanego wyniku) naprawdę pozwala pomóc.. a tak jest to kolejny post wróżący z fusów bo ni wiemy nawet gdzie i na czym sto baza...

    klikając na link piszesz że chcesz skrypt uruchomić w SQL Serwer... a błąd który tam się pojawił dotyczy parametru daty który w Microsoftowym SQL deklarować powinno się tak N'20130827' ale wystarczy tak '20130827'

    Poza tym dobrze jest sprawdzić czy tabela istnieje i ewentualnie ją skasować (lub powiadomić o tym usera) oczywiście jeśli istnieje taka potrzeb można takową bazę stworzyć jeśli nie istnieje...

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    choć to zapytanie wykona się poprawnie ja proponowałbym jednak taki jego kształt...

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    w przeciwieństwie do kolegów zasadniczo używam ostatnio tylko Microsoftowego sql'a bo drogi a duże i bogate firmy lubią płacić i jak się im daje fakturę to przynajmniej nie psioczą bo przecież program kosztował to i serwis musi...
    ale wracając do tematu... w związku z tym że jednak nie napisałeś dokładnie o co ci chodzi to teraz wstawię kawałek skryptu w który mam w sp_ a który to używa właśnie tabel tymczasowych (w tym wypadku tylko do selektów ale nic nie stoi na przeszkodzie żeby robić z tego całe inserty lub update'y)

    Kod: sql
    Zaloguj się, aby zobaczyć kod


    to jest dość duży fragment tej procedury... w razie pytań proszę pisać ale określając większą ilość szczegółów...

    0