External Article

In-Memory OLTP: Row Visibility in SQL Server’s MVCC

SQL Server's In-memory OLTP is fast, due to its multi-valued concurrency control (MVCC). MVCC avoids the need for locks by arranging for each user connected to the database to see a snapshot of the rows of the tables at a point in time, No changes made by the user will be seen by other users of the database until the changes have been completed and committed. It is conceptually simple but does the user always see the correct version of a row under all circumstances? Shel Burkow explains.

External Article

DELETE Operation in SQL Server HEAPs

You should stick to using tables in SQL Server, rather than heaps that have no clustered index, unless you have well-considered reasons to choose heaps. However, there are uses for heaps in special circumstances, and it is useful to know what these uses are, and when you should avoid heaps. Uwe Ricken explains, and demonstrates why you'd be unwise to use heaps rather than tables when the data is liable to change.

Blogs

Exploring DiskANN: Part 2: PQ, SSDs, caching and beam search

By

How I used AI for this postChatGPT to generate images based on info specifically...

T-SQL Tuesday #202: The Two Outages I Won't Ever Forget

By

My T-SQL Tuesday #202 entry for Marlon Ribunal's invitation on memorable SQL Server outages....

Measuring RAG Solutions: Are We Retrieving the Right Information?

By

A RAG pipeline that answers questions in the demo is not the same thing...

Read the latest Blogs

Forums

Performance Regression After Upgrading from SQL Server 2016 to 2022

By abdalah.mehdoini

Hello everyone, Last week we performed an upgrade of our SQL Server instance, moving...

Adding new column with DEFAULT

By Thomas Franz

Comments posted to this topic are about the item Adding new column with DEFAULT

How do I connect to a SQL Server database on my ISP?

By Doctor Who 2

I've got a web application for my side business. I've added a SQL Server...

Visit the forum

Question of the Day

Adding new column with DEFAULT

Which number will the COUNT() return after executing the following statements:

DROP TABLE IF EXISTS #test;
CREATE TABLE #test (id INT)
INSERT INTO #test (id)
SELECT *
  FROM GENERATE_SERIES(1, 3) AS gs
;

ALTER TABLE #test ADD flag BIT CONSTRAINT DF_#test_flag DEFAULT 0;
go
UPDATE #test SET flag = 0 WHERE id = 1
UPDATE #test SET flag = 1 WHERE id = 2

INSERT INTO #test (id) VALUES (4)

SELECT COUNT(*)
  FROM #test AS t
 WHERE flag = 0
 

See possible answers