We have many solutions for versioning data through time. One of the cleanest, most transparent and pretty effortless in my opinion are Temporal Tables which are available in MS SQL 2016+. What’s really great about that approach is that unless you need to retrieve state from the certain point in time or browse through changes in a specified time range, you can query against a versioned table in an exactly same way that you would do with any other one.
Bazy danych i XML 2400 dni, 51 minut temu 77 źrodło rozwiń
In some scenarios, like single-database multi-tenant or soft delete ones, you could want to restrict access to your rows based on a value stored in one or more values stored in your columns in example IsDeleted flag or some kind of TenantId column. Since SQL Server 2016 we have a wonderful tool for that called Row Level Security Policy.
Bazy danych i XML 2470 dni temu 114 źrodło rozwiń
When I’ve started working with Azure SQL there were some differences to SQL Server that I’ve needed to get used to. One of the first was that you just can’t query other databases that you’re already in, querying for [OtherDB].[dbo].[SomeTable] just wasn’t possible anymore. It appears that it may not be possible, but you actually can query for data in other databases.
Written by Dawid Sibińskion I’ve recently met a weird issue with T-SQL scripts at work and would like to share it with you today 🙂 On daily basis I work a lot with MS SQL Server databases. We often create many T-SQL objects (tables, views, procedures, functions) and because of some reasons we cannot use Entity Framework or another from widely available ORMs. Nonetheless, all objects created in the database must be kept in the form of SQL scripts (files) containing set of CREATE, ALTER, INSERT,...
Bazy danych i XML 2553 dni, 54 minuty temu 69 źrodło rozwiń
Tworząc bazę danych dla SmogBota, mimo że jest ona stosunkowo niewielka jeśli chodzi o złożoność i ilość obiektów, postanowiłem zaimplementować kilka dobrych praktyk i pokazać w jaki sposób można zwiększyć bezpieczeństwo takowej bazy, nie męcząc się zbytnio :) Całość mechanizmu jest prosta i przejrzysta a opiera się to na schema bazodanowych.
Daj się poznać 2017 2793 dni, 1 godzinę, 38 minut temu 98 źrodło rozwiń
W dzisiejszym wpisie pokażę dosyć mało znaną konstrukcję TOP…WITH TIES. Muszę przyznać, że sam trafiłem na nią całkiem niedawno mimo, iż była ona dostępna już w SQL Server 2000.
Bazy danych i XML 3711 dni, 2 godziny, 42 minuty temu 293 źrodło rozwiń
More experience I gain, more interested I am in how things work underneath the code level. In this post I want to provide short description of the Top 10 programming languages (by TIOBE Index), how they work and their super short history.
Sztuka programowania 3758 dni, 21 godzin, 48 minut temu 441 źrodło rozwiń
Wyobraźmy sobie, że mamy jakiś zestaw zmiennych, którym chcielibyśmy nadawać wartości w zależności od kategorii, która je opisuje. Jednocześnie – pomimo przynależności do tej kategorii – jeżeli wartość zmiennej dla owej kategorii nie została zdefiniowana – chcielibyśmy, aby taka zmienna używała wartości domyślnej. Zakładamy też, że wartości domyślne posiadają wszystkie zmienne i jeśli zajdzie potrzeba uzależnienia wartości zmiennej od posiadanej przez nią kategorii, nie ma to oznaczać...
Bazy danych i XML 4156 dni, 20 godzin, 4 minuty temu 114 źrodło rozwiń
Zakładam, że polecenia update języka T-SQL nie trzeba nikomu przedstawiać. Jest to jedno z jego czterech podstawowych poleceń. Służy do aktualizacji zawartości kolumn tabeli. Zakładam jednak, że niewiele osób wie, iż polecenie to potrafi także aktualizować...
Bazy danych i XML 4170 dni, 3 godziny, 22 minuty temu 167 źrodło rozwiń
W poprzednim wpisie pokazałem kilka sposobów na wygenerowanie zbioru kolejnych liczb całkowitych. Dzisiaj zaprezentuję wykorzystanie tych danych w kilku przypadkach. Zacznijmy od przygotowania tabeli zawierającej 100 liczb, będzie ona używana w każdym z prezentowanych przykładów.
Bazy danych i XML 4203 dni, 19 godzin, 12 minut temu 149 źrodło rozwiń
Często podczas programowania w T-SQL pojawia się potrzeba skorzystania ze zbioru kolejnych liczb całkowitych z określonego zakresu. SQL Server nie posiada gotowej tabeli zawierającej takie dane, pozostaje opracowanie własnego rozwiązania.
Bazy danych i XML 4205 dni, 1 godzinę, 5 minut temu 168 źrodło rozwiń
SQL Profiler – jak zapewne większość wie – jest narzędziem pozwalającym śledzić pracę SQL Serwera. Chyba najbardziej popularnym jego wykorzystaniem, jest śledzenie poleceń SQL przesyłanych do serwera. Zapewne także większość wie, iż nie jest to narzędzie darmowe. Co zatem zrobić, kiedy posiadamy jedynie wersję Express SQL Serwera? Okazuje się, że wiele zadań SQL Profilera można zrealizować samodzielnie. W tym wpisie ...
Bazy danych i XML 4219 dni, 21 godzin, 5 minut temu 175 źrodło rozwiń
In almost every enterprise scale system there are some tree structures to be held in the database. It could be a system menu structure, an enterprise organisation structure or a user hierarchy. Lets assume that we need to model insurance agents hierarchy for insurance policies processing system. Thinking about agents as children and parents and creating such structures seems to be natural: Agents tableColumnTypeIDInt, not nullParentIDInt, nullRole/RangeSome example attribute Structure...
Bazy danych i XML 4319 dni, 1 godzinę, 6 minut temu 25 źrodło rozwiń
Załóżmy, że posiadamy tabelę, która może być w relacji jeden do jednego do innej tabeli lub tej relacji nie posiadać. [...] Dobrze byłoby narzucić odpowiednie ograniczenia na tego typu tabelę, czyli zabezpieczyć przed możliwością przyporządkowania do dwóch wierszy tego samego wiersza z tabeli przyporządkowywanej...
Bazy danych i XML 4372 dni, 32 minuty temu 83 źrodło rozwiń
Dlaczego, po co lub do czego to użyć to już indywidualna sprawa jednak chcę się podzielić ciekawostką, która może się przydać dla lubiących SQL. Więc od początku. Mamy następujące zapytanie (baza danych w moim przypadku składa się z imion i daty urodzenia ...
Bazy danych i XML 4386 dni, 17 godzin, 1 minutę temu 129 źrodło rozwiń
Konferencja MTS 2012 już za nami. Jest co wspominać. Miło było być uczestnikiem tego wydarzenia. Jak co roku, również tym razem największą wartość dla mnie miały dwie rzeczy: możliwość spotkania ludzi dzielących podobne pasje i zainteresowania (a tym razem często także i interesy!) oraz merytoryka prezentacji.
Bazy danych i XML 4392 dni, 15 godzin, 57 minut temu 112 źrodło rozwiń
W dzisiejszym temacie zajmę się omówieniem poleceń ROLLUP, CUBE oraz GROUPING SETS. Polecenia te umieszczane są w klauzuli GROUP BY i pozwalają na wygenerowanie odpowiednich grupowań w celu agregacji danych.
Bazy danych i XML 4422 dni, 2 godziny, 10 minut temu 324 źrodło rozwiń
Od wersji SQL Server 2005 w języku T-SQL dostępne jest polecenie output. Możemy dołączyć je do instrukcji insert, update, delete lub merge w celu uzyskania informacji o rekordach przetworzonych w wyniku ich działania. Informacje te udostępniane są przez dwa zbiory danych: inserted oraz deleted – ich struktura odpowiada tabeli, na której wykonywana jest dana operacja.
Bazy danych i XML 4454 dni, 22 godziny, 46 minut temu 109 źrodło rozwiń
Jedną z ciekawiej zapowiadających się nowości w języku Transact-SQL (T-SQL) w SQL Server 2012 była funkcja FORMAT. Wspomniał o niej choćby Marcin Nowakowski opisując nowe funkcje skalarne w najnowszej odsłonie systemu SQL Server. FORMAT daje spore możliwości tworzenia ciągów znakowych sformatowanych według zadanego wzorca zgodnego z wybraną notacją narodową (np. wybór formatowania “pie...
Bazy danych i XML 4517 dni, 1 minutę temu 94 źrodło rozwiń
W najnowszej wersji SQL Server język T-SQL wzbogacony został o kilka nowych funkcji analitycznych. Są to tzw. funkcje okienkowe operujące na podzbiorach (oknach danych tworzonych klauzulą OVER) głównego zbioru zwróconego przez zapytanie. Zanim przejdę do omówienia wspomnianych funkcji pokażę co zmieniło się w samym poleceniu OVER.
Bazy danych i XML 4524 dni, 3 godziny, 33 minuty temu 249 źrodło rozwiń