SQL formázás

T-SQL, kód

Van egy pár hasznos formázási szabály, amit érdemes betartani, amikor kódot írsz, és ez ugyanúgy érvényes az SQL kódokra is.

Olvass tovább

Count és count_big

szám

A count ugye megszámol valamit, de miért van rá két külön funkció? Mi ez a count_big? Másképpen számolnak? Mást számolnak? Nem igazán. Egyetlen különbség a visszatérő értékük, aminek típusa int vagy bigint.

Olvass tovább

use database feltételesen

coding, debugging

A probléma

Érdekes problémába futottam bele: use parancs feltételes használata. Valami ilyesmit képzeljetek el, hogy

if exists(select 1 from sys.databases where name='akarmi')
begin
use akarmi
parancsok tömkelege az adott adatbázisra
end

Csak éppen ez így nem működik.

Olvass tovább

Truncate vagy delete

radír, törlés, truncate

Elvileg mindkét paranccsal egy tábla tartalmát tudjuk törölni, de mivel külön van delete és külön van truncate, gondolhatjuk, hogy vannak különbségek. Van is különbség, mégpedig olyanok, amik miatt nagyon meg kell gondolni, hogy melyiket használjuk egy-egy esetben.

Olvass tovább

Szöszmösz az adatbázisban

smiley, mosoly, szöszmösz

Múlt héten elkezdett egy adatbázisban némelyik rekord köhögni, nem akarta rendesen visszaadni a WCF service és furcsa hibákat írogatott. A hiba valami olyasmire utalt, hogy nem sikerült valami automatikus konverzió:

Unable to translate Unicode character \uD83D at index 0 to specified code page.

Említ még EncoderExceptionFallbackBuffert, UnsafeGetUTF8Length-et, szóval gyanús az egész.

Olvass tovább

SSIS csomag átírása T-SQL-re

Van egy jó kis SSIS csomagunk, ami nagyjából semmi mást nem csinál, csak adatokat tesz át egyik szerverről egy másikra. Nincs benne különösebb logika, nincs benne transzformáció, tényleg 99%-ban az a belseje, hogy truncate table xy; insert into másikszerver..tábla select from ezaszerver..tábla; Mivel az Integration Services csomagokat nem lehet igazából merge-elni semmilyen verziókövető rendszerben, ezért megpróbáltam áttenni sima TSQL-be.

Olvass tovább