Referential Integrity — Complete Guide
Referential Integrity — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of SQL Server Tutorial on Toolliyo Academy.
On this page
SQL Server Tutorial · Lesson 29 of 100
Referential Integrity
SQL basics → Queries → Advanced
SQL basics · 1 — SELECT · ~6 min · SQL — Joins & Relationships
What is this?
Referential integrity means every foreign key value points at a real parent row — or is NULL if allowed. SQL Server rejects orphans.
Why should you care?
An order with CustomerId = 99999 when no such customer exists breaks reports and refunds.
See it live — copy this example
Run in SQL Server Management Studio (SSMS) or Azure Data Studio.
USE DataVerse;
-- This fails if CustomerId 99999 does not exist:
BEGIN TRY
INSERT INTO dbo.Orders (City, Amount, CustomerId)
VALUES (N'Goa', 100, 99999);
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrMsg;
END CATCH;
SELECT o.OrderId, o.CustomerId
FROM dbo.Orders o
LEFT JOIN dbo.Customers c ON c.CustomerId = o.CustomerId
WHERE c.CustomerId IS NULL; -- should be empty when integrity holds
What happened?
- The TRY/CATCH shows the FK violation message.
- The LEFT JOIN check finds orphan orders if someone disabled constraints — a health query.
Practice next
- Attempt the bad INSERT and read the error.
- Insert with a real CustomerId.
- Run the orphan check query — expect no rows.
- Add FK from OrderItems.ProductId to Products.
- Query sys.foreign_keys for DataVerse.
Remember
FKs keep child keys valid. Orphan rows are a data bug. Catch violations early at write time.
No orphan orders
DataVerse Orders.CustomerId FK enforces real customers.
Outcome: Finance reports never show “unknown customer” gaps from bad IDs.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!