Toon posts:

[SQL] Refresh table

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik maak gebruik van systeem tabellen in de database, maar als je tabellen verwijderd en opnieuw aanmaakt kunnen die systeem tabellen nog al een corrupt worden. Dit heb ik al opgelost bij views, daar is namelijk een system stored procedure voor, namelijk 'sp_refreshview' dit werkt perfect:
SQL:
1
exec sp_refreshview 'view_name' 

Nu zoek ik ook zo'n functie voor tabellen. En niet alleen de Data moet gerefreshed worden maar dus de hele table.
Mijn SQl server is Microsoft SQL Server 2000 - 8.00.534

Verwijderd

Volgens mij zitten in deze vraag meer richtingen...

Als je regelmatig tabellen aanmaakt en weggooit adviseer ik tijdelijke tabellen te gebruiken.

Je database zou niet corrupt mogen raken als je tabellen muteert, dat is vreemd...

Om de database op te frissen heb je repair en compact functies.

Kun je het wat meer toelichten?

Verwijderd

Topicstarter
Even een voorbeeld wanneer het fout gaat, dit is bij een view, geen tabel. Maar dit gebeurt dus ook bij andere systeem tabellen.
INFORMATION_SCHEMA.VIEW_TABLE_USAGE maakt gebruik van 'sysdepents' en 'sysobjects'. Maar probeer onderstaande code maar dat gaat dus onderaan fout.

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create table a (id int) 
go 
create table b (id int) 
go 
create view c 
as 
select a.id from a,b where a.id = b.id 
go 
select * from INFORMATION_SCHEMA.VIEW_TABLE_USAGE 
drop table a 
go 
create table a (id int) 
go 
select * from c 
select * from INFORMATION_SCHEMA.VIEW_TABLE_USAGE 

Verwijderd

Speelt hier niet het probleem dat een verwijderde tabel, die je opnieuw aanmaakt wel dezelfde naam heeft naar niet hetzelfde interne sql server id? Jouw voorbeeldcode werkt bij mij zonder problemen. Hoe zit het met de commits?

[ Voor 22% gewijzigd door Verwijderd op 09-01-2003 13:07 ]


Verwijderd

Topicstarter
Verwijderd schreef op 09 January 2003 @ 12:58:
Speelt hier niet het probleem dat een verwijderde tabel, die je opnieuw aanmaakt wel dezelfde naam heeft naar niet hetzelfde interne sql server id? Jouw voorbeeldcode werkt bij mij zonder problemen.
jep klopt.
Ik kan jammer genoeg ook niets aan de procedure veranderen. Dit gebeurt namelijk door een andere programma, waar ik niet aan mag komen. Maar doordat eigenlijk de tabel wordt verwijderd en weer opnieuw wordt aangemaakt veranderd ook zijn id nummer.

[ Voor 29% gewijzigd door Verwijderd op 09-01-2003 14:58 ]