Frage : Reseed alle Tabellen in DB using DBCC CHECKIDENT in einem Befehl

Wir haben ein paar Datenbanken, dass wir reseed wünschen werden die Identitätsfelder auf ungefähr 100 Tabellen zu ihrem gegenwärtigen hohen record.

The Grund für dieses sind, dass wir eine Gleichdatenbank auf den „Meister“ verschieben möchten und die Identitätsfelder nicht erhöhte properly.

Is dort Mittel des Handelns dies für alle Tabellen in einer Datenbank gewesen sind, anstatt, jede einzelne Tabelle einzeln zu tun?

Thanks

Antwort : Reseed alle Tabellen in DB using DBCC CHECKIDENT in einem Befehl

Der Code ist unten. Gerade uncomment das exec (und heraus kommentieren der Druck, wenn er gewünscht wird).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
nocount an einstellen

@tables Tabelle erklären (
  Identität Identifikation-int,
  tablename sysname,
  columnName sysname
)

@counter int erklären
@count int erklären
@newseed nvarchar erklären (20)
@tablename sysname erklären
@columnname sysname erklären
das @sql erklären, das varchar ist (maximal)
das @sqlex erklären, das varchar ist (maximal)
das @sqlMax erklären, das nvarchar ist (maximal)
das @sqlMaxEx erklären, das nvarchar ist (maximal)
@PVALUE VARCHAR     (250) ERKLÄREN
@PARAM NVARCHAR      (250) ERKLÄREN

@sql einstellen = „DBCC CHECKIDENT ('' @table '', RESEED, @value)“
@sqlMax einstellen = „AUSERWÄHLTES @value=MAX (@pkfield) VON @table“
@PARAM EINSTELLEN = „DAS @VALUE VARCHAR (250) OUTPUT“
 
in @tables einsetzen
EINDEUTIGES TABLE_NAME, COLUMN_NAME vorwählen
von INFORMATION_SCHEMA.COLUMNS
wo TABLE_SCHEMA = „dbo“
und COLUMNPROPERTY (object_id (TABLE_NAME), COLUMN_NAME, „IsIdentity ") = 1
Auftrag durch TABLE_NAME
@count = @@ROWCOUNT vorwählen

@counter einstellen = 1
während @counter  <>
           
Weitere Lösungen  
 
programming4us programming4us