Frage : alle Anwendertabelle in einem Index sqlserver 2000 beschneiden

Hallo Experten, benötige ich einen Index, alle Anwendertabellen zu beschneiden. Sie gefragt mich, dass um das prodcution DB zu einem Testbediener zu kopieren aber sie ihn leeren wünschen. Zu in der Lage sein zu tun, dass ich einen Index benötige, der das Finden der Tabellen, die bezogen und truncate der Tabellen kombiniert. Wir benutzen sqlserver 2000. Ich gefunden diesen Index auf dem Netz, um Tabellen, die oder bezogen, nicht in einer database.
declare @r Tabelle (das
PK_TABLE nvarchar (200), das nvarchar
FK_TABLE (200),
primary zu erhalten befestige gesammelt (PK_TABLE, FK_TABLE))

declare @rs Tabelle (das nvarchar
PK_TABLE (200), das nvarchar
FK_TABLE (200),
primary befestigen gesammelt (PK_TABLE, FK_TABLE))/>declare/>
REF_LEVEL int,
TABLE_NAME Primärschlüssel der nvarchar (200) nicht Null gesammelt)/>
TABLE_NAME Primärschlüssel der nvarchar (200) nicht Null gesammelt)/>
set
declare/>print 'Laststabellen für Datenbank „+db_name ()

insert in @table
select
TABLE_NAME = a.TABLE_SCHEMA+“. „+a.TABLE_NAME
from
INFORMATION_SCHEMA.TABLES a
where
a.TABLE_TYPE = „NIEDRIGE TABELLE“ and
a.TABLE_SCHEMA+“. '+a.TABLE_NAME <> 'dbo.dtproperties'< Br/>order by
1

print „Last PK/FK references'< Br/>insert in @r
select distinct
PK_TABLE =
b.TABLE_SCHEMA+“. „+b.TABLE_NAME,
FK_TABLE =
c.TABLE_SCHEMA+“. '+c.TABLE_NAME
from
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS a
join
INFORMATION_SCHEMA.TABLE_CONSTRAINTS b
on
a.CONSTRAINT_SCHEMA = b.CONSTRAINT_SCHEMA and
a.UNIQUE_CONSTRAINT_NAME = b.CONSTRAINT_NAME
join
INFORMATION_SCHEMA.TABLE_CONSTRAINTS c
on
a.CONSTRAINT_SCHEMA = c.CONSTRAINT_SCHEMA and
a.CONSTRAINT_NAME = c.CONSTRAINT_NAME
order by
1,2

print 'erstellen Kopie vom PK/FK references'< Br/>insert in @rs
select
*
from
@r
order by
1,2

print, 'UNO-bezogene Tabellen als Niveau 0 zu laden '
insert in @t
select
REF_LEVEL = 0,
a.TABLE_NAME
from
@table a
where
a.TABLE_NAME nicht in
(
vorwählen PK_TABLE vom @r Anschluss alles
auserwähltes FK_TABLE vom @r
)
order by
1

-- auserwählt * vom @r
print 'Selbstreferences'< Br/>delete vom @r
where
PK_TABLE = FK_TABLE

declare @level int
set @level = 0

while @level < 100
begin
gesetztes @level = @level + Löschung des 1

Druck 'Löschung auf der unteren Ebene references'< Brs/> @r
vom where
PK_TABLE im
(auserwähltes TABLE_NAME @t)
vom or
FK_TABLE im
(auserwähltes TABLE_NAME @t)

vom Druck 'die Last waagerecht ausgerichtetes „+convert (varchar (20), @level) +“ Einsatz des tables'< Brs/>
in @t
select
REF_LEVEL =@level,
a.TABLE_NAME
from
@table a
where
a.TABLE_NAME entfernen nicht in
(auserwähltes FK_TABLE @r)
and
a.TABLE_NAME nicht vom in
(auserwähltes TABLE_NAME vom @t)
Auftrag by
1

, wenn nicht existiert (auserwählt * @r)
begin
des Ladentabelle levels'< Brs/> des Druckes 'getaner Druck ''
break
end

end


print 'Zählimpuls Tabellen durch level'< Br/>print '' vom

select
REF_LEVEL,
TABLE_COUNT = Zählimpuls (*)
from
@t
group by
REF_LEVEL
order by
REF_LEVEL

print 'Tabellen im Auftrag durch Niveau und Tabelle Br name'print 'Anmerkung: Ungültiger REF_LEVEL Nay anzeigen mögliches Kreisreference'< Br/>print ''
select
b.REF_LEVEL,
TABLE_NAME = der Bekehrte (varchar (40), a.TABLE_NAME)
from
das @table a
, das join
@t b
auf a.TABLE_NAME = b.TABLE_NAME
order by
b.REF_LEVEL,
a.TABLE_NAME

print 'Tabellen gelassen und Beziehen Tables'< Br/>print ''
select
b.REF_LEVEL,
TABLE_NAME = der Bekehrte (varchar (40), a.TABLE_NAME),
REFERENCING_TABLE das =convert (varchar (40), c.FK_TABLE)
from
das @table a
/>, das join
@t b
auf a.TABLE_NAME = b.TABLE_NAME
gelassen join
@rs c
auf a.TABLE_NAME = c.PK_TABLE
order by
a.TABLE_NAME,
c.FK_TABLE


print 'verlegt gt und verlegt Referenced'< Br/>print ''
select
b.REF_LEVEL,
TABLE_NAME = der Bekehrte (varchar (40), a.TABLE_NAME),
TABLE_REFERENCED das =convert (varchar (40), c.PK_TABLE)
from
das @table a
/>, das join
@t b
auf a.TABLE_NAME = b.TABLE_NAME
gelassen join
@rs c
auf a.TABLE_NAME = c.FK_TABLE
order by
a.TABLE_NAME,
c.PK_TABLE
gelassen

Antwort : alle Anwendertabelle in einem Index sqlserver 2000 beschneiden

Ja hat Microsoft Recht.

Wenn es zu Aussicht 2003 kommt, müssen wir das Profil manuell rekonfigurieren, wenn Aussicht 2003 nicht in der Lage ist, an den Briefkasten nach der Migration anzuschließen.

Es gibt Werkzeuge wie Aussicht-Profil-Update-Werkzeug, aber es funktioniert nicht mit Austausch 2010.

Weitere Lösungen  
 
programming4us programming4us