Polecenie INSERT pozwala na dodawanie danych do tabeli bazy danych. W naszym przykładzie dodamy nowy rekod do tabeli HumanResources.Department. Spójrzcie na poniższą składnię:
INSERT INTO HumanResources.Department(Name, GroupName, ModifiedDate) VALUES ('Inżynier', 'Dział badań i rozwoju', GETDATE())W pierwszej kolejności musimy podać nazwę tabeli oraz kolumn do których chcemy wstawić nowe wartości. Zarezerwowane słowo kluczowe VALUES jest używane do zdefiniowana odpowiednich danych, które chcemy wstawić do tabeli. Dane muszą być zgodne z kolumnami (i ich typami) - piewsza część definicji zapytania.
Nie ma możliwości użycia w tym przypadku klauzuli WHERE. Musimy również upewnić się, że wszelkie ograniczenia nałożone na kolumny są spełnione (jest to szeroki temat, który zostanie omówiony nieco bardziej szczegółowo w części dla zaawanowanych użytkowników).
Spójrzmy jak zawartość tabeli wygląda przez wykonaniem polecenia:
Oraz po wykonaniu powyższego polecenia oraz zwróceniu danych z tabeli wraz z sortowaniem malejącym po dacie modyfikacji:
Uważne oko może zobaczyć, że polskie znaki nie zostały zapisane. Dodatkowo (jeżeli macie dostęp do bazy danych) zapewne sprawdziliście już typ powyższych kolumn. Na pierwszy rzut oka wszystko wydaje się być w porządku. Nie wchodząc głęboko w szczegóły – zachowanie to jest spowodowane domyślnym ustawieniem SQL Servera związanym z kodowaniem znaków. W trakcie wykonywania naszego polecenia doszło do domyślnej konwersji znaków. W naszym przypadku musimy dokonać jawnej konwersji wykorzystując poniższą składnię:
INSERT INTO HumanResources.Department(Name, GroupName, ModifiedDate) VALUES (N'Inżynier', N'Dział badań i rozwoju', GETDATE())Spójrzcie na rezultat: