I show that, in some cases, INSTEAD OF triggers can be better for performance than AFTER triggers.
In this post, see what it took to migrate nearly 5,000 posts from the SQLPerformance.com Q&A site on AnswerHub to WordPress.
I talk about the pros and cons of letting SQL Server wait to get a more accurate cardinality estimate from a table variable.
I discuss a queue table for DDL notifications instead of handling them within a DDL trigger.
Updated for a more modern version, I explain how to install and use SQLLocalDB.
This tip was refreshed with status updates for some of the critical bugs discovered in MERGE over the years.
SQL Server will gladly tell you about missing indexes, but it may not give you the keys in the right order.
For this T-SQL Tuesday, I talk about my methods for metadata discovery in new versions of SQL Server.
GDPR is a big deal for a lot of us; in this tip I explain how you might want to deal with "forget me" requests.
I show how to denormalize data using FOR XML PATH and STRING_AGG, and explain which one is faster.
Privacy laws are going to make us all much more careful about how we handle data archival and purge processes.
I show how to enable, disable, drop, and re-create all triggers in a database using dynamic SQL.
I give some scattered thoughts about how I have contributed to the SQL Server community throughout my career.
Estimated data size as a result of implicit conversions can make a huge difference in the execution plan.
In this tip, I talk about a slightly more flexible way to simulate TRY_CONVERT() on unsupported versions of SQL Server.
If you are still stuck on an unsupported version of SQL Server, there may still be a way for you to have TRY_CONVERT() functionality.
Check this list for possible problems if you have trouble connecting using the Dedicated Administrator Connection.
This was mostly tongue-in-cheek, but I show that there is no performance difference between tabs and spaces. (There is, however, a better reason to prefer tabs: accessibility.)
I recap a grand total of FIFTY entries in this month's T-SQL Tuesday. A lot of interesting submissions!
For my T-SQL Tuesday entry, I show off my hockey and football card collection, license plates from all over the world, and a very special collection of "Everything Happens to Aaron" books.
I address several questions raised during two parameter sniffing webinars I presented with Kimberly L. Tripp and Andy Mallon.
For this month's T-SQL Tuesday, I would love to hear about something you are passionate about, outside of the SQL Server or tech community.
You can now enable this setting at the database level, optimizing performance there while not violating support for other vendor databases (like SharePoint).
See a few creative ways to make use of STRING_AGG() and STRING_SPLIT().
Some background and disclaimers about moving my content from sqlblog.com to sqlblog.org.
Some very important qualitative questions your company needs to ask itself to be sure you are complying with this new regulation.
Aaron Bertrand announces the recipient of his second annual Community Influencer of the Year award.
For this T-SQL Tuesday, I talk about a few of the difference makers in my career.
Tip : Overview of Database Engine Changes in SQL Server 2017
In this tip, I dig into some of the inner workings of resumable index rebuilds.
For this T-SQL Tuesday, I describe a few of my experiences from the 2000s, from both sides of interviews.
For T-SQL Tuesday #92, I show one trick I use to prevent errant DML from running in production.
Tip : Dealing with the single-character delimiter in STRING_SPLIT function
I illustrate why you should be very careful about oversizing varchar / nvarchar columns.
In this tip, I explain a simple trick to prevent accidental updates or deletes.
I recount the way I implemented database changes in a distributed SQL Server system a decade ago.
Tip : Performance Impact of SQL Server 2016 Row-Level Security
I show a "redundant" non-clustered index outperforming the clustered index with the same key.
I start a new series around disproving prevalent myths regarding SQL Server performance.
For T-SQL Tuesday #87, I talk about two shiny new toys in SQL Server: STRING_SPLIT() and STRING_AGG().
I show how to implement simple triggers that maintain trigram-type tables used for better supporting wildcard searches.
In an effort to make leading wildcard searches sargable, I play around with a trigram-type implementation in SQL Server.