Kategoria: Development

Tematy poświęcane developowaniu rozwiązań w MS SQL Server

Development, SQL Server

Stosowanie IN do znalezienia jednej wartości w wielu kolumnach

Z dokumentacji technet: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/in-transact-sql IN (Transact-SQL) – Determines whether a specified value matches any value in a subquery or a list. Oficjalna dokumentacja nie wspomina o możliwości wykorzystania polecenia IN do przeszukiwania wielu kolumn dla podanej wartości. Jednak implementacja  przewiduje takie przypadki, pokaże też na co engine zamienia takie polecenie. CzasamiCzytaj dalej / Read more

Development, SQL Server

Sortowanie liczb przechowywanych jako napis

Z wikipedii: http://pl.wikipedia.org/wiki/Porz%C4%85dek_leksykograficzny Porządek leksykograficzny – pojęcie matematyczne odnoszące się do sposobu uporządkowania elementów zbiorów. Dzisiaj krótko o dość często zapominanym szczególe, który może znacząco wpłynąć na wyniki Waszych zapytań. W wielu systemach można napotkać na ciekawe przypadki trzymania liczb w polach (n)char,(n)varchar. Zapewne każdy z nich dałoby się jakośCzytaj dalej / Read more

Development, SQL Server

SQL# (SQLsharp) na przykładzie STRING_SPLIT i REGEX_REPLACE

Z dokumentacji projektu SQLSharp( http://www.sqlsharp.com/download/SQLsharp_Manual.pdf ) Welcome to SQL# (SQLsharp). SQL# is a small .Net / CLR library (Assembly to be specific) that resides in a SQL Server 2005(or newer) database and provides a suite of User-Defined Functions,StoredProcedures, User-Defined Aggregates, and User-Defined Types. This set of toolsis designed to make thelivesCzytaj dalej / Read more

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

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()

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:

 Czytaj 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