External Article

Designing Tables for Audit Data in SQL Server

My company is just starting to look at adding functionality to retain historical data for key tables and columns for auditing purposes in many of our SQL Server databases. I have seen some of your recent tips related to triggers (Forcing Trigger Firing Order in SQL Server and Trigger Alternatives in SQL Server - OUTPUT Clause). Based on using triggers or a similar technology, what is the best way to store the historical data?

Blogs

Cloud Data Driven User Group 2025 – Slides & Scripts

By

The slidedeck and the SQL scripts for the session Indexing for Dummies can be...

Leading Through Change: Guiding Teams in Times of Uncertainty

By

Change is not a disruption in technology; it is the rhythm. New frameworks appear,...

The Mystery of the Locked-Up Database -Scooby Dooing Episode 6

By

No Scooby-Doo story is complete without footprints leading to a hidden passage. In SQL...

Read the latest Blogs

Forums

Don't Forget About Financial Skills

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Don't Forget About Financial Skills

Building a Simple SQL/AI Environment

By Tony Savoie

Comments posted to this topic are about the item Building a Simple SQL/AI Environment

Checking Identities

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Checking Identities

Visit the forum

Question of the Day

Checking Identities

The DBCC CHECKIDENT command is used when working with identity values. I have a table with 10 rows in it that looks like this:

TravelLogID CityID  StartDate   EndDate
1           1       2025-01-11  2025-01-16
2           2       2025-01-11  2025-01-16
3           3       2025-01-11  2025-01-16
4           4       2025-01-11  2025-01-16
5           5       2025-01-11  2025-01-16
6           6       2025-01-11  2025-01-16
7           7       2025-01-11  2025-01-16
8           8       2025-01-11  2025-01-16
9           9       2025-01-11  2025-01-16
10          10      2025-01-11  2025-01-16
The docs for DBCC CHECKIDENT say this if I run with only the table parameter: "If the current identity value for a table is less than the maximum identity value stored in the identity column, it is reset using the maximum value in the identity column. " I run this code:
DELETE dbo.TravelLog WHERE TravelLogID >= 9
GO
DBCC CHECKIDENT(TravelLog, RESEED)
GO
INSERT dbo.TravelLog
(
    CityID,
    StartDate,
    EndDate
)
VALUES
(4, '2025-09-14', '2025-09-17')
GO
What is the identity value for the new row inserted by the insert statement above?

See possible answers