Vraag : Reseed Alle lijsten in db die DBCC CHECKIDENT in één bevel gebruiken

Wij hebben een paar gegevensbestanden dat wij gaan willen aan reseed de identiteitsgebieden op ongeveer 100 lijsten aan hun huidige hoge reden record.

The voor dit zijn dat wij een peer gegevensbestand naar de „meester“ willen verplaatsen en zijn de identiteitsgebieden geen verhoogde properly.

Is daar een middel om dit voor alle lijsten in een gegevensbestand in plaats van tegelijkertijd het doen van elke individuele lijst één te doen geweest?

Thanks

Antwoord : Reseed Alle lijsten in db die DBCC CHECKIDENT in één bevel gebruiken

De code is hieronder. Uncomment enkel exec (en becommentari�ër uit de druk, indien gewenst).
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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
reeks nocount 

verklaar @tables lijst (
  identiteitskaart int. identiteit,
  tablename sysname,
  columnName sysname
)

verklaar @counter int.
verklaar @count int.
verklaar @newseed nvarchar (20)
verklaar @tablename sysname
verklaar @columnname sysname
verklaar @sql varchar (maximum)
verklaar @sqlex varchar (maximum)
verklaar @sqlMax nvarchar (maximum)
verklaar @sqlMaxEx nvarchar (maximum)
VERKLAAR @PVALUE     VARCHAR (250)
VERKLAAR @PARAM      NVARCHAR (250)

PLAATS @SQL = „DBCC CHECKIDENT ('' @TABLE '', RESEED, @VALUE)“
plaats @sqlMax = „SELECTEREN @value=MAX (@pkfield) UIT @table“
PLAATS @PARAM = „@VALUE (250) OUTPUT VARCHAR“
 
tussenvoegsel in @tables
SELECTEER VERSCHILLENDE TABLE_NAME, COLUMN_NAME
van INFORMATION_SCHEMA.COLUMNS
waar TABLE_SCHEMA = „dbo“
en COLUMNPROPERTY (object_id (TABLE_NAME), COLUMN_NAME, „IsIdentity“) = 1
orde door TABLE_NAME
selecteer @count = @@ROWCOUNT

plaats @counter = 1
terwijl @counter  <>
           
Andere oplossingen  
 
programming4us programming4us