T-SQL

Paralelní INSERT… SELECT

SQL Server 2016 přináší nově paralelní vykonání INSERT…SELECT kombinace, které za určitých okolností představuje výrazné (10x a více) zlepšení výkonu pro některé typické ETL scénáře. Aby mohl být použit paralelní operátor, musí být splněny především dvě podmínky: level kompatibily databáze musí být nastaven na 130 a je nutné použít TABLOCK…

Read more
T-SQL

Column Aliases are Fully Ignored in INSERT Columns List

Time to time crazy things are happening in SQL Server. T-SQL looks like to be easy and rigid language without any options for playing with it like other languages. I will show you that there is still some space where you can do magic and have some fun. Check out…
T-SQL

Mazání dat pomocí sp_MSForEachTable

Pomocí nedokumentované procedury sp_MSForEachTable můžeme spouštět dotazy a operace nad všemi tabulkami v databázi. Že je procedura nedokumentovaná znamená, že není zmíněna v SQL Server dokumentaci (BOL) a je oficiálně určena pouze k internímu použití. Na druhou stranu je procedura používání již spoustu let i běžnými uživateli SQL Serveru a…

Read more
T-SQL

OUTPUT

OUTPUT klauzule přišla do SQL Serveru již v edici 2008, ale stále je to výrazně nedoceněná funkcionalita a spousta vývojářů raději nejprve vloží data do tabulky a pak se teprve pomocí WHERE snaží přesvědčit, že se vše povedlo. Proto jsem pro Vás připravil krátký přehled všech vychytávek, které s OUTPUT…
T-SQL

UPDATE pomocí aliasu tabulky

Napsat správně UPDATE příkaz může vypadat jako trivialita, ale opak je pravdou. Nehod, kdy se někomu nezadařilo a oprava dat ze záloh zabrala několik hodin, jsem zažil dost. Dnes si ukážeme alespoň drobné vylepšení, jak správně na UPDATE a věřím, že to leckomu z juniorů ušetří pár bezesných nocí:) Kouzlo…
T-SQL

Explicitní vložení do IDENTITY sloupce

Pokud máme tabulku, která obsahuje IDENTITY sloupec, generuje SQL Server nového hodnoty pro IDENTITY sloupec automaticky. Pokud přeci jen chceme vložit hodnotu sami a nespoléhat na automatický generátor, stačí použít SET IDENTITY INSERT ON|OFF příkaz, jak ukazuje následující příklad: SET IDENTITY_INSERT SampleTable ON GO INSERT SampleTable (RowID, Name, Value) VALUES…

Read more
T-SQL

Composable DML

Composable DML is an extension SQL Server 2008 extension of the OUTPUT clause which one was originally published in SQL Server 2005. OUTPUT is generally returning all rows from the DML where it’s used without an option to filter the results set. Composable DML extends this concept for INSERT…SELECT scenarios…