Jak wykonywać operacje DML w Transact-SQL?
Operacje DML takie jak Insert, Update, Delete możesz wykonywać także z użyciem Transact-SQL. Różnica w porównaniu do zwykłego SQL’a polega na tym, że możemy korzystać np ze zmiennych. Polecenia DML ujmujemy w bloku kodu pomiędzy frazami BEGIN i END. Do pokazania przykładów stwórz tabelę, wg. poniżej zapisanego kodu:
Create table TbTest (id int identity(1,1), MyValue1 nvarchar(255), MyValue2 nvarchar(255), date datetime2 default getdate() );
W kolejnych będziemy wykonywali przykłady operacji DML na podstawie powyższej tabeli. Warto zaznaczyć, że dokładnie w ten sam sposób możesz wykonywać operacje na zmiennej tabelarycznej.
Polecenie Insert w T-SQL
Ok, tabela jest już gotowa. Korzystając ze składni Transact-SQL dodajmy przykładowe dane do wcześniej utworzonej tabeli. Uzupełniamy jedynie dwie kolumny o nazwach MyValue1 i MyValue2, gdyż pozostałe kolumny uzupełniają się samoczynnie.
--tomaszkenig.pl BEGIN INSERT INTO TbTest (MyValue1, MyValue2) VALUES ('France','Paris'); INSERT INTO TbTest (MyValue1, MyValue2) VALUES ('USA','New York'); INSERT INTO TbTest (MyValue1, MyValue2) VALUES ('Australia','Sydney'); END; select * from TbTest;
W dalszej kolejności rozbudujmy nasz blok kodu. Utwórzmy zmienne tekstowe o nazwach @varCountry i @varCity. Przypiszmy do nich wartości Germany i Berlin. Wykonajmy kolejne polecenie Insert SQL, tym razem z użyciem zmiennych T-SQL.
--tomaszkenig.pl DECLARE @varCountry varchar(50)='Germany'; DECLARE @varCity varchar(50)='Berlin'; BEGIN INSERT INTO TbTest (MyValue1, MyValue2) VALUES (@varCountry,@varCity); END; select * from TbTest;
W ten sposób wykonaliśmy Insert do tabeli SQL Server bezpośrednio ze zmiennych T-SQL.
Update w Transact-SQL
Podobnie jak polecenie Insert, możemy użyć polecenia SQL Update do modyfikacji już istniejących. Podobnie jak w poprzednim przypadku Stwórzmy 2 zmienne tekstowe T-SQL o nazwach @varCountry i @varCity. Przypiszmy do nich wartości Poland i Warsaw. Wykonajmy kolejne polecenie Update, z użyciem zmiennych T-SQL.
DECLARE @varCountry varchar(50)='Poland'; DECLARE @varCity varchar(50)='Warsaw'; BEGIN UPDATE TbTest SET MyValue1=@varCountry ,MyValue2=@varCity WHERE MyValue1='Germany'; END; select * from TbTest;
Polecenie Delete w Transact-SQL
Podobnie jak w przypadku poleceń Insert i Update, możemy też korzystać z polecenia SQL Delete, łącząc SQL i Transact-SQL. Poniżej prosty przykład, w którym tworzymy 2 zmienne i na tabeli z poprzednich przykładów usuwamy rekordy o id równych 2 i 3.
--tomaszkenig.pl DECLARE @Id1 int = 2; DECLARE @Id2 int = 3; BEGIN DELETE FROM TbTest WHERE ID IN (@Id1, @Id2); END; select * from TbTest;
Ten artykuł jest częścią szkolenia T-SQL, które zamieszczam pod tym adresem: kurs T-SQL. Możesz także skorzystać z całego kursu dotyczącego SQL Server, który zamieszczam tutaj: Kurs SQL Server.