Ik ben bezig met een script in php dat gebruikers uit een tabel de tabel leest. Nu is de lijst met gebruikers erg groot en wil ik dus pagina's maken. Ik had hiervoor een andere topic over hoe ik dat kon doen.
Dit is nu gelukt. Ik gebruik een "temporary table" waarin ik de waarden zet die voldoen aan de where clausule. Als nu gebruiker nu de volgende pagina wil zien wil ik dat de gegevens uit de temporary table worden gelezen. En niet eerst een select statement om de temporary table te vullen want dat is eigenlijk al gebeurt.
Nu onstaat er een probleem: Als de gebruiker een nieuwe where clausuele instelt (zoek functie) dan moet de temporary table opnieuw gevuld worden. Om dit voorelkaar te krijgen moet de eerste temporary table verwijderd worden omdat er geen tabellen met dezelfde naam kunnen bestaan.
Dat verwijderen gaat gewoon zo:
Maar ik wil dus pas verwijderen als er een nieuwe select moet worden uitgevoerd. dus aan het begin en niet aan het einde van de query.
Dus op het moment dat de gebruiker voor het eerst de lijst bekijkt bestaat de temporary table #Temp nog niet want die is nog niet aangemaakt.
Dus ik moet kijken of de tabel bestaat. Zo ja, Droppen en dan opnieuw aanmaken en vullen. Zo nee, alleen vullen.
Ik dacht dat checken of hij bestaat doe ik zo
Dit werkt alleen als de tabel bestaat. als hij niet bestaat (de eerste keer dus) krijg ik een error.
Ik snap het niet. In MySQL is het gewoon DROP TABLE #Temp if exists maar hoe werkt dat in MSSQL
Dit is nu gelukt. Ik gebruik een "temporary table" waarin ik de waarden zet die voldoen aan de where clausule. Als nu gebruiker nu de volgende pagina wil zien wil ik dat de gegevens uit de temporary table worden gelezen. En niet eerst een select statement om de temporary table te vullen want dat is eigenlijk al gebeurt.
Nu onstaat er een probleem: Als de gebruiker een nieuwe where clausuele instelt (zoek functie) dan moet de temporary table opnieuw gevuld worden. Om dit voorelkaar te krijgen moet de eerste temporary table verwijderd worden omdat er geen tabellen met dezelfde naam kunnen bestaan.
Dat verwijderen gaat gewoon zo:
code:
1
| DROP TABLE #Temp |
Maar ik wil dus pas verwijderen als er een nieuwe select moet worden uitgevoerd. dus aan het begin en niet aan het einde van de query.
Dus op het moment dat de gebruiker voor het eerst de lijst bekijkt bestaat de temporary table #Temp nog niet want die is nog niet aangemaakt.
Dus ik moet kijken of de tabel bestaat. Zo ja, Droppen en dan opnieuw aanmaken en vullen. Zo nee, alleen vullen.
Ik dacht dat checken of hij bestaat doe ik zo
code:
1
2
3
4
5
| if exists (select * from #Temp) begin select * from #Temp; DROP TABLE #Temp; end |
Dit werkt alleen als de tabel bestaat. als hij niet bestaat (de eerste keer dus) krijg ik een error.
Ik snap het niet. In MySQL is het gewoon DROP TABLE #Temp if exists maar hoe werkt dat in MSSQL
Jochemmol