Development, SQL Server

NULL vs WARTOŚĆ i często popełniany błąd przy warunku kolumna <> 'wartość’

Z dokumentacji technet ( https://msdn.microsoft.com/en-us/library/ms188048(v=sql.105).aspx ) Specifies ISO compliant behavior of the Equals (=) and Not Equal To (<>) comparison operators when they are used with null values. Witajcie. Dzisiaj omówimy wyjątkowo perfidny przypadek, który może łatwo doprowadzić do katastrofy ;), jeśli nie pamięta się o tym jak w świecie zbiorówCzytaj dalej / Read more

Development, SQL Server

CREATE TYPE [AS TABLE] – przekazanie tabeli do procedury

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/ms175007%28v=sql.105%29.aspx ) Creates an alias data type or a user-defined type in the current database. The implementation of an alias data type is based on a SQL Server native system type. A user-defined type is implemented through a class of an assembly in the Microsoft .NET Framework commonCzytaj dalej / Read more

BRAINDUMP, SQL Server

Piosenka o SQL Server 2016? O jego typach indeksów,szyfrowaniu danych czy backupach? Wait, whaaat?

Tak, tak! Ktoś zza oceanu wpadł na pomysł, że wykorzysta swoją pasję do tworzenia muzyki z tematyką, którą zajmuje się profesjonalnie na co dzień – DBA 🙂 I tak oto powstały cztery utwory o tematyce SQL Server. W planach są kolejne 😉   Powiem szczerze, że poruszana w nich tematyka jest ważnaCzytaj dalej / Read more

BRAINDUMP, SQL Server

Tymczasowa globalna procedura zwraca w @@PROCID numer obiektu w tempdb, ale OBJECT_NAME(@@PROCID) zwróci błędne dane -_-

Dobra. Nie wiem czemu tak jest… Spróbowałem stworzyć globalną procedurę tymczasową, chciałem pobrać jej nazwę w kodzie. Dostawałem wyniki bez sensu (zwracało mi nazwę jakiejś procedury z bazy, na której tworzyłem ##). Zrobiłem zatem pętlę, która co sekundę tworzy ##DUPA od nowa i zwraca jego @@PROCID i pobraną nazwę zCzytaj dalej / Read more

Development, SQL Server

SQL_VARIANT_PROPERTY ()

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/ms178550(v=sql.105).aspx ) Returns the base data type and other information about a sql_variant value. Funkcja teoretycznie służy do sprawdzenia właściwości takich jak: typ,precyzja, ilośc bajtów czy collation dla danych przetrzymywanych w uniwersalnym typie danych sql server jakim jest sql_variant. Ale nic nie stoi na przeszkodzie by sprawdzaćCzytaj dalej / Read more

Development, SQL Server

fn_my_permissions() – Sprawdzenie jakie mamy uprawnienia do bazy danych

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/ms176097%28v=sql.105%29.aspx ) Returns a list of the permissions effectively granted to the principal on a securable. Przy pomocy tego polecenia możemy w szybki sposób sprawdzić nasze uprawnia względem konkretnego obiektu. Obiektem może być serwer, baza i oczywiście wszystkie inne, do których dostęp zarządzany jest przez uprawnienia sqlCzytaj dalej / Read more

Development, SQL Server

PRINT vs RAISERROR

Ilu z Was korzystało z polecenia PRINT? A ilu na jego podstawie oparło logikę powiadamiania użytkownika uruchamiającego procedurę/batcha o rozpoczęciu/zakończeniu jakiegoś kroku w kodzie? Podejrzewam, że znajdzie się kilka takich osób… 🙂 No dobrze, a czy zaobserwowaliście jakieś nieprawidłowości w wyświetlaniu komunikatów? Nie? A spróbujcie uruchomić poniższy kod: DECLARE @iCzytaj dalej / Read more

Development, Przydatne skrypty, SQL Server

Sprytne (i szybkie) wygenerowanie tabeli z liczbami od 1 do N (tally table)

Jeżeli potrzebowaliście kiedyś wygenerować na szybko do testów sporą ilość wierszy lub chcieliście otrzymać liczby rosnąco w postaci wierszy (joinowanie numeracji, sprawdzanie ciaglosci numeracji i inne kombinacje ;]) to istnieje sposób na stosunkowo szybkie zaspokojenie takiej potrzeby 😀 Z pomocą przychodzi nam CTE i funkcja okienkowa numerująca dane wygenerowane przezCzytaj dalej / Read more

Development, SQL Server

SELECT {fn TRUNCATE( 100.123456, 4)};

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/bb630290(v=sql.105).aspx ) „You can use ODBC Scalar Functions in Transact-SQL statements. These statements are interpreted by SQL Server. They can be used in stored procedures and user-defined functions. These include string, numeric, time, date, interval, and system functions.” Dzisiaj coś mniej praktycznego, ale za to ciekawie wyglądającegoCzytaj dalej / Read more

Development, SQL Server

SOME | ANY | ALL

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/ms175064(v=sql.105).aspx ; http://msdn.microsoft.com/en-us/library/ms178543(v=sql.105).aspx ) „Compares a scalar value with a single-column set of values.” Wielu z Was zapewne zna i korzystało z polecenia „IN”, które pozwala w prosty sposób sprawdzić w warunku zapytania, czy wskazana przez nas  wartość bieżącego rekordu występuje w innym zbiorze. Oczywiście w ten sposóbCzytaj dalej / Read more