DECLARE @TableName varchar(50), @ColumnName varchar(50)
DECLARE @SQLString nvarchar(500), @MaxID int
DECLARE curs CURSOR FOR
--begin query
select TABLE_NAME, COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_SCHEMA = 'dbo'
and COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
order by TABLE_NAME
-- end query
OPEN curs
FETCH NEXT FROM curs INTO @TableName, @ColumnName
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2 )
BEGIN
SET @SQLString = N'SELECT @MaxIDOUT = MAX( ' + @ColumnName + ') FROM ' + @TableName
EXECUTE sp_executesql @SQLString, N'@MaxIDOUT int OUTPUT', @MaxIDOUT=@MaxID OUTPUT;
DBCC CHECKIDENT(@TableName, 'RESEED', @MaxID)
END
FETCH NEXT FROM curs INTO @TableName, @ColumnName
END
DEALLOCATE curs
Wednesday, August 22, 2007
Correcting int identity values after a sql server 2005 to 2000 publish
You will need to run this sql:
Subscribe to:
Posts (Atom)