go backsqlschool blogs list

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

by 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.
Ημερομηνία: 17 May 2016 13:19
Αξιολόγηση:
Κατηγορίες:
Share it:

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS