go backarticles

Articles of SQLschool.gr Team

Quick ‘n’ dirty tips series: Reseed all tables with an identity column

Vassilis Ioannidis

Όλοι έχουμε βρεθεί στην διαδικασία αρχικοποίησης πινάκων σε μια βάση. Εγώ βρέθηκα σήμερα μετά από αρκετό καιρό, θα έλεγα. Το παρακάτω script βρίσκει τους πίνακες αυτούς και μετά εκτελεί με ένα γρήγορο και «βρώμικο» τρόπο την αναδιάρθρωση των identity values.
DECLARE @sql NVARCHAR(max);
SET @sql='';

WITH idents 
AS
(
        SELECT TABLE_NAME
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_SCHEMA = 'dbo'
        AND COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
        AND TABLE_NAME <> 'sysdiagrams'
)
SELECT @sql=@sql+'DBCC CHECKIDENT(' + TABLE_NAME + ',reseed,0);' FROM idents WHERE TABLE_NAME like 'g2c%';

--SELECT @sql;

EXEC SP_EXECUTESQL @sql;


Προσοχή! Μην κάνετε reseed πίνακες που δεν επιθυμείτε και αποκτήσετε inconsistent data.

Relative Articles

Leave your comment

Login with your SQLschool.gr account if you want to comment on this article.