Louis Davidson

Louis is the editor of this Simple-Talk website. Prior to that, has was a corporate database developer and data architect for a non-profit organization for 25 years! Louis has been a Microsoft MVP since 2004, and is the author of a series of SQL Server Database Design books, most recently Pro SQL Server Relational Database Design and Implementation.

Follow Louis Davidson via

31 August 2022
31 August 2022

Into the unknown, sort of

Over half of my life ago, I was looking for a job. I had written a bunch of triggers and stored procedures at my first job, but I was relatively green. I had just (barely) gotten my degree in Computer Science, and was looking to get out of Cleveland, TN. I checked around and found … Read more
03 August 2021
03 August 2021

Using Filetable to Find Duplicate Image Files with Different Names

In my article “Filetables, Great For Business, Great For Hobbyist”, I implemented the basis of a hobby database I use for my Twitter accounts (@disneypicaday and @dollywoodp), where I post daily pictures of theme parks. As my inventory of prepped pictures has grown, one thing has become a major pain. Duplicates. I have tens of … Read more
20 March 2021
20 March 2021

Determining actions you can take with Edge and Node tables in SQL Server

One of the interesting things about working with many-to-many relationships in SQL Server with graph tables instead of a relational table is that unlike a relational many-to-many table, by default an edge may can implement relationships from lots of different tables (nodes). You can also limit what nodes can be related using which edges. For … Read more
15 March 2021
15 March 2021

The Issue\Purpose of Multiple Edge Constraint/Conditions

Edge constraints were added in SQL Server 2019 to make the node to edge relationship stricter/enforced, and more like typical foreign key constraints. When used, they define what node types can be used in the from and to position of the edge. What makes edges different than a many-to-many relationship in a relational table is … Read more
12 March 2021
12 March 2021

Ways to get and deal with invalid node identifiers in SQL Server Edge references

One of the weirder things about graph tables in SQL Server is the mysterious backend implementation. The values you see when working with these objects look like this: {“type”:”node”,”schema”:”dbo”,”table”:”Node1″,”id”:0}, but when you get errors, you don’t see the json, you see what this represents (two integers for the object_id and unique id in the graph … Read more