IDENTITY crisis — 4. IDENTITY-free #SQL programming

In Part 1 and Part 2, I set the background. In Part 3, I attacked a castle… it is now an infested ruins. We’re now building a better version of it (meeting the specification). Our new castle with relational fortifications. Who told database design is no fun? The environment I’m using a full fledged MicrosoftContinue reading “IDENTITY crisis — 4. IDENTITY-free #SQL programming”

IDENTITY crisis — 3. Relational Distancing

After Part 1 and Part 2. I want to embark on a code review. Playing the pathologist, running a small diagnostic on the diagnose table and its friends. Relationaaaaaaah By the all mighty, we shall invoke SchemaSpy, and the picture should speak: I now feel so sad for diagnose. Quarantine measures? The only relation isContinue reading “IDENTITY crisis — 3. Relational Distancing”

IDENTITY crisis — Part 1: a DISTINCT in disguise

Nothing looks more alike than 2 INT. I wish a warning could come if I ever try to join on 2 columns defined with IDENTITY. This started as a single post. But as I’m redacting, it gets longer. I plan/need to split it in 3 parts. That being said: If you want to make GodContinue reading “IDENTITY crisis — Part 1: a DISTINCT in disguise”

IDENTITY crisis — 2. Death by Surrogate

Nothing looks more alike than 2 INT. I wish a warning could come if I ever try to join on 2 columns defined with IDENTITY. Surrogate: 1 – Developer: 0 We left with … on v.id = c.id … and the query was: In our database on v.id = c.id should be something strange, createContinue reading “IDENTITY crisis — 2. Death by Surrogate”

string_agg() do not max alone — #SQLServer #SQLNewBlogger

… and that surely is for good reason when you check how the nvarchar(max)/varchar(max) family is treated. As I moved from PostgreSQL to SQL Server 2008R2 one of the things I missed the most were all the out of the box aggregation functions. And one of them was string_agg(). We migrated last year from 2008R2Continue reading “string_agg() do not max alone — #SQLServer #SQLNewBlogger”

Trigger the ORM

I’m not that a fan of ORM. Surely because I also don’t have to program with OOP language (C#, Java…). From the experience so far, it has mostly been a fight more than a cooperation. To be honest it may play well with the database but the software design decision are trickling down to theContinue reading “Trigger the ORM”

The clones are attacking

“Do the developers realize that the reason we store data is to report on it ?” Louis Davidson in Episode 178 of SQL Data Partners (around 19min 10sec ) I was faced with this question again as I could only witness the same piece of information inserted in two different tables. I’m not talking aboutContinue reading “The clones are attacking”

A unique error

This weekend, I listened to the SDU Show 81 podcast and the guest was Louis Davidson, the author my favorite SQL Server book. In this podcast, a common SQL anti-pattern came: not covering the natural keys with UNIQUE constraints, only having the surrogate being unique. I could only node in agreement. I take the timeContinue reading “A unique error”

Sailing to a new DBMS

A first transition Before I started programming on SQL Server in 2018, I only developed with PostgreSQL. In the beginning I was trying to transfer the knowledge from one DBMS to the other. And so many piece were missing to me. I could no more enjoy ROLLBACK on DDL, multicolumn JOIN, awesome aggregation and windowContinue reading “Sailing to a new DBMS”