Milyen jó is a késő esti munka főleg mert 6 órás időzona különbséggel dolgozom. Nem kellene, de mégis. Az ok nagyon egyszerű: amíg szabadságon voltam pár dolgot megváltoztattak, mert úgy gondolták páran, hogy az jó. Most javíthatom az egészet dolgozhatok egy bonyolúlt deployment scripten e miatt. Mi az amit *soha* nem szabad csinálni egy táblával: Soha nem nevezünk át oszlopot! Soha nem változtatunk a tábla oszlopainak sorrendjén (pár kivételes esettől eltekintve). Új oszlopo...
[More]
Az alábbi figyelmeztetéseket ajánlott minden SQL Server esetében beállítani. A kód kommentjeiben van leírás mindegyikről, illetve a hozzá tartozó Technet cikk is megtalálható. Az értesítéshez emailt használ az alábbi kód, mely feltételezi, hogy a Database Mail szolgáltatás engedélyezve van és beállításra is ke...
[More]
Sokszor találkozom olyan adatbázisokkal, amikor semmilyen vagy nagyon rossz dokumentáció áll rendelkezésre. Ettől többször fordul elő, hogy az alkalmazás által használt értékek adatbázisból jönnek, de még a Profiler sem biztos, hogy jó megoldás annak megfejtésére, hogy honnan is jön az adat, ráadásul sokszor időrabló feladat m...
[More]
Sajnos nem minden cég használ legfrissebb verziót egy-egy programból, vagy csak simán egy másik rendszerből érkező adatok nem tudnak olyan funkciókat, amit pl. az SQL Server tud. Ilyen például a TVP – Table Value Parameter. Képzeljük el az az esetet, amikor TVP helyett egy listát kapunk, pl: a,b,c,d. Ahhoz, hogy ezt tábla formában kapjuk meg, az alábbi megoldást szoktam alkalmazni: USE tempdb;
GO
CREATE FUNCTION [dbo].[fnSplit]
(
@text nvarchar(max),
@separator char(1) = ','
)
RETU...
[More]
Megint előjött az a probléma, hogy meg kellett tudni, mikor indult el az SQL Server. De már itt az Agent is érdekes volt. Az előző írásomban ez még nem szerpelt, és nem is kellett. Valami egészen más dolog miatt túrtam a rendszer procikat és view-kat, ekkor találtam rá erre, ami már az Agent indulását is mutatja:
SELECT
[servicename],
[last_startup_time],
*
FROM
sys...
[More]
Interjú kérdés, aminek semmi értelme, de 10-ből 9-en beugranak és nem a legoptimálisabb megoldást adják :-)
Írj egy programot, ami 1-től 100-ig kiírja a számokat. Ha a szám osztható hárommal, akkor írja ki a szám helyett, hogy Fizz, ha osztható öttel, akkor Buzz, ha mind a kettővel osztható, akkor FizzBuzz.
Elsőre ezt a megoldást adtam, ami nem rossz, de...
[More]
Van egy alapszabály a lekrédezéseknél, amit nagyon sokan – leginkább az üzleti felhasználók – elfelejtenek, mégpedig az, hogy csakis annyi adatot jelenítsünk meg, amennyire tényleg szükség van és kezelhető mennyiség. Ez valamikor 1 sor, de előfordulhat, hogy több száz sorról van szó. Ez utóbbit egy weboldalon megjeleníteni nem egy jó...
[More]
Na ez egy igazán egy érdekes probléma: képzeljük el azt az esetet, amikor egy tábla oszlopa engedi a NULL értékeket, de azt is akarjuk, hogy minden egyéb érték egyedi legyen, pl.:
USE tempdb;
GO
CREATE TABLE [dbo].[CheckConstraintTest]
(
[id] int NULL,
[name] char(1) NULL
);
Első körben a UNIQUE constraint jutott eszembe, de ez nem lesz jó. Miért is? Persze, a UNIQUE constraint ne...
[More]
Napokban volt egy bonyolúltabb adatbázis, ahol foreign key alapján meg kellett nézni a kapcsolódó táblákat. Ez még annyira nem is lenne nehéz, de ha a referált tábla is használ foreign key-t, akkor tovább kell menni és megkeresni a többi hivatkozott táblát is. Erre az alábbi megoldást használtam:
DECLARE @tablename sysname = 'Sales'
;WITH C...
[More]