Klauzula OUTPUT w zapytaniach T-SQL

Chciałem napisać kilka słów o klauzuli OUTPUT stosowanej w operacjach DML języka T-SQL. Wydaje mi się, że jest to często zapominana klauzula, a nawet stwierdzam, że wiele osób o niej nie wiem. Wielokrotnie widziałem, kod który miał za zadanie zalogować jakieś zmiant w tabeli. Często stosowano do tego odpowiednie rodzaje wyzwalaczy (triggerów), gdzie w trakcie jednej z operacji DML (Delete, Insert czy Update) wykorzystywane były tabele Inserted i /lub Deleted. SQL Server automatycznie zarządza tymi tabelami i udostępnia je podczas wykonywania wyzwalaczyoraz Więcej…

Prawa de Morgana

Ostatnio zauważyłem kontrolując kody w T-SQL, że młodzi deweloperzy nie pamiętają prawa de Morgana lub źle go interpretują. W celu przypomnienia takich podstaw omówimy dwa prawa. I prawo de Morgana jest prawem zaprzeczenia koniunkcji Zaprzeczenie koniunkcji dwóch zdań ∼(p∧q) jest równoważne alternatywie zaprzeczeń tych zdań (∼p)∨(∼q). (∼(p∧q))⇔((∼p)∨(∼q)) NOT(a AND b) = (NOT a) OR (NOT b) II prawo de Morgana jest prawem zaprzeczenia alternatyw Zaprzeczenie alternatywy dwóch zdań ∼(p∨q) jest równoważne koniunkcji zaprzeczeń tych zdań (∼p)∧(∼q). (∼(p∨q))⇔((∼p)∧(∼q)) NOT(a OR b) = (NOT Więcej…

Flagi, mapy bitowe w T-SQL

Flaga to liczba z jedną jedynką (lub więcej) opisująca jakąś cechę. Wartości flag nie powinny się pokrywać, chyba że się nie wykluczają – wspólna (pod)cecha. Generalnie mapy bitowe pozwalają na przechowywanie wielu wartości flag czyli wartości poszczególnych bitów mapy (flag, ustawień) w jednej liczbie. Do sprawdzania flag najlepiej jest używać operatory bitowe. 32-bitowy INT to 32 bity informacji na 4 bajtach, 32 informacje logiczne które zapisane z użyciem typu bit zajmowałyby całe 32 bajty. Operacje logiczne na Mapach bitowych: sprawdzenie ustawienia wybranych Więcej…

Operatory bitowe do wykonywania operacji logicznych w T-SQL cz.II

W poprzedniej części Operatory bitowe do wykonywania operacji logicznych w T-SQL cz.I opisane zostały podstawowe operacje bitowe w T-SQL oparte na zmiennych typu bit. Teraz chcę podać przykład wyliczania tego typu operacji dla zmiennych liczbowych np. typu INT. Zasada jest podobna, gdyż na początku liczby trzeba rozpisać na postać binarną, a następnie na podstawie porównywania pojedynczych bitów (tak jak przedstawiono w części pierwszej) należy dopiero stworzyć tablice prawdy i uzyskany w ten sposób wynik binarny przekształcić na postać dziesiętną. & (Bitwise AND) Więcej…

Operatory bitowe do wykonywania operacji logicznych w T-SQL cz.I

Jeśli potrzeba wykonać operacje logiczne na operatorach bitowych zawartych jako kolumny w tabelach bez problemu można to wykonać z poziomu języka T-SQL SQL Server. T-SQL udostępnia operatory bitowe do wykonywania operacji logicznych na kolumnach tabeli bazy danych SQL Server. Poniżej przedstawię operatory bitowe OR, AND i XOR. Zaczniemy od utworzenia tabeli z kolumną klucza podstawowego, wraz z dwiema kolumnami typu danych BIT. Następnie wypełnimy tabelę czterema wierszami, tak jakbyśmy tworzyli klasyczną tabelę prawdy. Poniżej tabela z podstawowymi operacjami logicznymi: Najpierw utworzymy tabelę Więcej…

Nowe #CU dla SQL Server 2017 i 2019

Pojawił się w lutym 2021r nowe zestaw skumulowanych poprawek CU: w wersji 9 dla MS SQL Server 2019 (KB5000642) w wersji 23 dla MS SQL Server 2017 (KB5000685) Aktualizuje składniki usług SQL Server i Analysis do następujących kompilacji: Składnik Wersja produktu Wersja pliku SQL Server 15.0.4102.2 2019.150.4102.2 Analysis Services 15.0.34.29 2018.150.34.29 #CU9 SQL Server 2019 Składnik Wersja produktu Wersja pliku SQL Server 14.0.3381.3 2017.140.3381.3 Analysis Services 14.0.249.70 2017.140.249.70 #CU23 SQL Server 2017