SQL Server custom EventLog logger

I’m active on several forums (TechNet, MSDN, etc.) and found some interesting questions, I’d like to blog about. One of the topic is a custom event logging module for SQL Server. I can use a built in function to log any error to the Application Event Log with the following code snippet: RAISERROR ('Error sample', 16,1) WITH LOG;   Ok, this works if I want to use Application log. What can I do if I have to have my custom Event Log? If I have SQL Server 2005 or later, obvious answer ... [More]

PIVOT aggregáló funkció nélkül

Ma ismét elökerült ez az érdekes probléma: hogyan használjam a PIVOT operátort anélkül, hogy az értékek összesítve lennének pl. a SUM, AVG függvényekel. Nekem csak az értékek kellenek. A MIN és a MAX függvények ebben az esetben nagyon hasznosak :-) /*=============================================================================== Date: 2012.01.19 Descripti... [More]

Microsoft Project Server ECF custom view automatic refresh

I'm writing this article as ECF (Enterprise Custom Fields) handling inside the Microsoft Project Server database backend is not really documented, at least hard to find any information about it :) I needed to write custom audit and custom code for MSPS 2007 and 2010. Requirements were relying on ECF's and needed to use them in my custom code. I decided to build a view for my project entity with all custom fields. This view can be created in the ProjectServer_Reporting database. It was also a re... [More]

SQL Server tervezés

Sokszor találkoztam olyan cégekkel, ahol nem vették elég komolyan egy-egy SQL Server kialakítását. Persze van olyan is, amikor a pénz nem számít és olyan vasat vesznek, ami bőven elég lehet a feladatra, de lehet csak szimplán szerencséjük van . Bár a szerencse sem elég egy rosszúl beállított szerver esetén. Sajnos olyan dolgok is közrejátszanak a hibás döntésekhez, mint például a szakmaiasság hiánya (van ilyen szó hogy szakmaisság? ). Az elmúlt évek alatt volt szerencsém kis és nagynak mondhat... [More]

5 dolog amit SOHA nem csinál egy adatbázis fejlesztő

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]

IO figyelmeztetések

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]

Hogyan keressünk meg egy adott értéket egy adatbázisban?

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]

Ingyenes SQL Server eBook

Az alábbi listában összegyűjtöttem  néhány érdekes és ingyenes könyvet, amiket már ki is olvastam és ajánlani tudok. Természetesen van több is, de azok nem SQL Server témakörben. Introducing Microsoft SQL Server 2008 R2 Introducing Microsoft SQL Server Code Name “Denali” (DRAFT Preview) Inside the SQL Server Query Optimizer Troubleshooting SQL Server: A Guide for the Accid... [More]

Hasznos funkció: fnSplit

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]