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.

Vassilis Ioannidis

Vassilis Ioannidis

Σπούδασα προγραμματιστής αλλά τελικά με κέρδισαν οι βάσεις και ιδιαίτερα ο SQL Server.Μην παρεξηγηθώ, αγαπώ τον προγραμματισμό και την δύναμη που πηγάζει από τον κώδικα. Αυτή η μοναδική, για 'μένα, δυνατότητα που σου δίνεται να δίνεις "ζωή" από το τίποτα σε κάτι, μόνο εμείς και ο Dr. Frankenstein μπορούμε να το βιώσουμε και να φωνάξουμε: "It's alive! It's alive" …μέχρι να το πιάσουν οι χρήστες :P. Γενικά, γνωρίζω τον SQL Server από την έκδοση 6.5 όπου πρώτη φορά βοήθησα στην εγκατάσταση σε ένα κουτί με Windows NT 3.51 στα τέλη του 1995. Έκτοτε με ένα μικρό διάλλειμα μεταξύ 1999-2000 ασχολούμαι σε μόνιμη βάση με την τεχνολογία γύρω από τον Microsoft SQL Server και την αρχιτεκτονική των βάσεων δεδομένων.Καθημερινά συντηρώ και παρακολουθώ αρκετά παραγωγικά συστήματα (OLTP/OLAP) με SQL πίσω και συνδέσεις με διαφορετικά υποσυστήματα δεξιά και αριστερά και σίγουρα δεν μπορώ να πω ότι τα έχω δει όλα ή ότι τα ξέρω όλα. Κάθε άλλο. Κάθε μέρα, αν είμαι τυχερός, μαθαίνω και κάτι και αυτό είναι μια κινητήρια δύναμη που άλλες φορές σε εξιτάρει και άλλες φορές σε εξουθενώνει. Όλα αυτά τα χρόνια, έχω εμπλακεί σε όλες τις φάσεις του προγραμματισμού από τον σχεδιασμό μέχρι και την τελική διάθεση/εγκατάσταση της λύσης στους χρήστες. Είμαι κάτοχος αρκετών πιστοποιήσεων της Microsoft την τελευταία 15ετία (MCSP, MCT, MCSD, MCDBA, MCTS [SQL, NAV2009]) και θεωρώ ότι η ορθή και “by-the-book” διαδικασία πιστοποίησης σε βάζει σε ένα όμορφο δρόμο εκμάθησης -και γιατί όχι- προβολής της δουλειάς και της αγάπης που έχεις για το αντικείμενο που κάνεις.


Leave your comment

COMMENT

FULL NAME

EMAIL ADDRESS

We use Gravatar

WEB SITE



captcha


 

Newsletter

If you want to receive updates from us subscribe below with your email.
Follow us in
PASS chapter logo

The Official PASS Local Group for Greece

About us Contact us Terms of Use Privacy Sing in Register
sql school greece logo
© 2010-2020 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.