Thank you, Tim. You get the bonus points and the bonus bonus points.
Here's my quick tsql for wrapping this up. This is still more work than I want to do and test, so your option b of always truncating before reseed is straight forward and just as consistent.
CREATE TABLE id_test ( my_id INT IDENTITY(1,1) NOT NULL)
INSERT INTO id_test DEFAULT VALUES;
INSERT INTO id_test DEFAULT VALUES;
-- uncomment delete or truncate to test the two scenarios
DELETE FROM id_test
--truncate TABLE id_test
IF EXISTS( SELECT 1
FROM sys.identity_columns i INNER JOIN sys.tables t ON i.object_id = t.object_id
WHERE t.name = 'id_test' AND i.last_value IS not NULL )
DBCC CHECKIDENT(id_test, RESEED, 0)
ELSE
DBCC CHECKIDENT(id_test, RESEED, 1)
INSERT INTO id_test DEFAULT VALUES;
SELECT * FROM id_test
DROP TABLE id_test
go
mondo