Tworzenie tabeli w pamięci T-SQL

Jednym z wymagań dotyczących projektu było rozszerzenie istniejącej tablicy ’employee’ o jedną komunę: salary. Każdy istniejący rekord musi posiadać pewną wartość w nowej kolumnie. Został podesłany plik csv w którym zapisane były informacje z wartościami do nowej kolumny. Po stronie klienta można tylko odpalić wcześniej przygotowany skrypt. Skrypt powinien na początku stworzyć kopię aktualnej tabeli, a później wpisać wartości do nowej kolumny.

Na początku tabela ’employee’ po stronie klienta wygląda tak:

id name surname PESEL
1 Jan Kowalski 28092418406
2 Zbigniew Kręcina 47101816477
3 John Smith 55020101734
4 Albert Nowak 21060309285

Plik dostarczony przez klienta:

name,surname,PESEL,salary
Jan,Kowalski,28092418406,5000
Zbigniew,Kr©cina,47101816477,2500
John,Smith,55020101734,4100
Albert,Nowak,21060309285,1800

Jak można rozwiązać ten problem?

  1. Stworzyć kopię tabeli
  2. Stworzyć tabelę w pamięci z dwoma kolumnami: PESEL oraz salary
  3. Uzupełnić tą tabelę tymczasową danymi
  4. Dodać do aktualnej tabelę nową kolumnę
  5. Uzupełnić tabelę ’employee’ nowymi danymi.

Rozwiązanie:

  1. Kopia będzie zapisana z informacją o aktualnej dacie i godzinie.
  2. Dzięki numerowi PESEL będę rozpoznawać zatrudnioną osobę + oczywiście wypłata.
  3. Załóżmy, że importowanie plików w SQL Managment Studio nie działa :). Wchodzę do Excel, usuwam niepotrzebne kolumn i zapisuję plik w csv:

    PESEL,salary
    28092418406,5000
    47101816477,2500
    55020101734,4100
    21060309285,1800

    Następnie na stronie http://www.convertcsv.com/csv-to-sql.htm. Wrzucam plik z csv, wybieram opcję: 

  4. Dodanie nowej kolumny do istniejącej tabeli:

     

  5. Sprawdzam czy PESEL jest taki sam. Jeżeli tak do podmieniam wypłatę.

Całość prezentuje się tak:

 

id name surname PESEL salary
1 Jan Kowalski 28092418406 5000
2 Zbigniew Kręcina 47101816477 2500
3 John Smith 55020101734 4100
4 Albert Nowak 21060309285 1800
Powered by: Wordpress