Outer Join Trouble
Writing outer joins can be more difficult than it appears at first glance. Steve Jones examines this less often used query technique and brings to light a few places where you can lose data.
2006-01-05
18,597 reads
Writing outer joins can be more difficult than it appears at first glance. Steve Jones examines this less often used query technique and brings to light a few places where you can lose data.
2006-01-05
18,597 reads
When programming in T-SQL, the impact of NULL values can be severe in many cases, especially aggregates. New Author Peter Ward brings us a great explanation on how NULLs can impact things like SUM operations.
2005-12-28
11,041 reads
SQL Server 2000 has table valued functions that are very useful in many ways. However when you try to limit results with the ROWCOUNT setting, you can end up with some strange results. Peter He brings us a comprehensive look at some of the unpredictable results that you can get and how to code around them.
2005-12-21
10,147 reads
SQL Server 2000 error handling isn't the most mature system for dealing with unexpected events. It has been much enhanced in SQL Server 2005, but many people will be using SQL Server 2000 for a long time. RAISERROR is one of those functions that can really aid in troubleshooting, but is often underutilized. David Poole brings us some hints on how this can help you out in your code.
2005-11-23
19,611 reads
Selecting a menu structure from a series of tables is pretty easy. If you bound the number of levels in the menu. However if you have potentially variable numbers of levels. Stephen Lasham brings us a new piece on using recursion to select the data.
2005-10-11
8,822 reads
Auditing is becoming more and more important in many SQL Server environments. DBAs are being tasked with setting up, maintaining, and reporting on audit data. Author Leo Peysakhovich brings us one of his solutions to automatically generate an audit trail for your data.
2005-10-10
23,039 reads
Transactions in SQL Server can be very complicated, and are often misunderstood. Don Peterson brings us part 2 of his series on transactions. This part deals with XACT_ABORT, compilation errors and error handling in transactions.
2004-11-24
19,712 reads
In T-SQL you should use the IS NULL keywords to test for a null value. But David Poole runs into a strange gotcha in one of his applications where he is testing for a null value. It's an interesting read following Sherlock Poole around on his hunt to find an error.
2004-07-14
11,704 reads
Two weeks ago Andy challenged the readers of SQLServerCentral.com to figure out a small puzzle. Come see the results for yourself and find out who won some cash!
2001-06-27
4,864 reads
In part one of a two part article, Andy Warren challenges the readers of SQLServerCentral.com to solve a problem involving ADO and SQL Server. Are you up to the challenge?
2001-06-01
4,238 reads
One feature that I have been waiting for years! The new announcement around optimize...
Following on from my last post about Getting Started With KubeVirt & SQL Server,...
By DesertDBA
I haven’t posted in a while (well, not here at least since I’ve been...
Comments posted to this topic are about the item Refactoring SQL Code, which is...
Comments posted to this topic are about the item The Read Committed Snapshot Isolation...
Comments posted to this topic are about the item Working with JSON/JSONB Data in...
I am currently working with Sql Server 2022 and AdventureWorks database. First of all, let's set the "Read Committed Snapshot" to ON:
use master; go alter database AdventureWorks set read_committed_snapshot on with no_wait; goThen, from Session 1, I execute the following code:
--Session 1 use AdventureWorks; go create table ##t1 (id int, f1 varchar(10)); go insert into ##t1 values (1, 'A');From another session, called Session 2, I open a transaction and execute the following update:
--Session 2 use AdventureWorks; go begin tran; update ##t1 set f1 = 'B' where id = 1;Now, going back to Session 1, what happens if I execute this statement?
--Session 1 select f1 from ##t1 where id = 1;See possible answers