T-SQL

TRY & CATCH pattern

TRY & CATCH should be used where reasonable to prevent unhandled exceptions in T-SQL code and routines. It’s prepared for copy/paste purposes for everyday use. We may have two basic types of pattern: The new one using THROW keyword The legacy one with RAISERROR() THROW version: BEGIN TRY BEGIN TRAN…

Read more
T-SQL

CREATE TABLE syntax surprise

What do you think: Is this valid CREATE TABLE statement? CREATE TABLE dbo.SampleTable (ID INT,) GO Definitely yes! Try it by your own. The only one reason how to explain I see that after comma there can be 0 or n members (empty) collection of constraints like in this sample:…
SQL Server

Error in transactional replication: 'Incorrect syntax near WHERE'

Last week we have seen this error when we have initialized new Subscriber from snapshot that was generated for transactional replication after published database schema was updated: ‘An error has occurred: Incorrect syntax near where’ This error occurred after about one hour of applying snapshot to subscribers database and caused…
T-SQL

Hrátky s Table Value Constructorem

Table Value Constructor (TVC) je v SQL Serveru sice již od verze 2008, ale vzhledem k tomu, jak moc si s ním můžeme vyhrát, nebude na škodu si projít pár zajímavých příkladů jeho použití. Jen pro zopakování si připomeňme, že TVC je set jednoho nebo více řádkových výrazů, pomocí kterých…

Read more
SQL Server

SQL Server 2016 - Přehled novinek a změn v T-SQL

SQL Server 2016 je skutečným evolučním skokem ve vývoji této oblíbené databázové platformy a jeho význam je srovnatelný s příchodem SQL Serveru 2005 před jedenácti lety. Aktuální vydání přináší spoustu úplných novinek (Temporal Tables, Row Level Security, atd.) i významná rozšíření některých existujících funkcí (Columnstore, InMemory, atd.). V tomto článku…
SQL Server

#Errors in SSMS built-in reports

If you see picture like below in SSMS build in reports (Disk Usage by Top Table in this case) don’t get panic: It’s only another funny example of well known Out.Of.Memory exception. Just restart SSMS to get better;).

Read more
T-SQL

Jak chytře na zápis volání sp_executesql?

sp_executesql známe a používáme všichni pro vykonání dynamicky generovaného T-SQL kódu. Viděl jsem již nejrůznější zápisy a jmenné konvence, které se zdály na první pohled nekomplikované a vyhovující, ale s narůstající složitostí kódu se více a více od ideálu vzdalovaly. V průběhu let praxe jsem si oblíbil zápis níže, který…
T-SQL

Používání CASE ve WHERE

Pokud vynecháme případné záludnosti, které nám může přinést použití příkazu CASE ve WHERE podmínce, je to někdy nadmíru šikovná pomůcka, která najde své využití především v různých uložených procedurách používaných jako datové zdroje pro Reporting Services reporty, případně jako chytrá pomůcka aplikaci pro získání filtrovaných datových setů pro gridy a…
SQL Server

Generátor unikátních ID

V době, kdy ještě neexistovaly v SQL serveru sekvence, jsme při vytvoření generátoru unikátních IDček napříč celou databází byli odkázání na lidovou tvořivost. Dnes si ukážeme snad nejjednodušší možné řešení s využitím SCOPE_IDENTITY () a jedné tabulky, která drží naše již použitá IDčka.

Read more