2016-06-28 5 views
3

ich eine Ansicht zurücksetzen müssen, die auf der folgenden SELECT-Anweisung aufgerufen wird:Wie eine Tabelle

SELECT [Position], [TeamName], [Played], [Wins], [Loss], [Draws], [Points], [Goals_Scored], [Goals_Against], [Goal_Difference], [LeagueID] 
FROM League_Table 
WHERE LeagueID = @LeagueID 
ORDER BY Points DESC, Goal_Difference DESC; 

Dieser gibt eine Tabelle weiter unten.

enter image description here

Ich habe eine if-Anweisung, die für die überprüft, ob die Summe der Spiele pro Mannschaft erreicht ist (dies bedeutet, dass die Saison beendet ist), dann (dies ist Teil ich bin stecken), aktualisieren Sie einfach den Tisch Also fängt alles wieder an.

IF (SELECT MIN(Played) FROM dbo.League_Table WHERE LeagueID = @LeagueID) > @TotalMatches 

Meine Frage ist, was ist die beste Methode, um eine Liga-Tabelle zurückzusetzen? Im Folgenden ist ein Beispiel, wie es nach dem Refresh aussehen sollte:

enter image description here

+1

UPDATE Tabellenname SET Gespielt = 0, Gewinne = 0, Verlust = 0 usw. –

+0

Tabelle hat große Daten? – NEER

+0

Sie möchten eigentlich alle historischen Daten entfernen und nur mit einer Liste von Teams verlassen werden? Oder möchtest du eine neue LeagueID mit den gleichen Teams? –

Antwort

2

Wenn diese Tabelle haben große Mengen von Daten, glaube ich schneller dies einen Einsatz in eine neue Tabelle und wieder einsetzen wird durch:

sp_rename dbo.League_Table, dbo.League_Table_old; -- rename old table 

CREATE TABLE dbo.League_Table AS (.....); -- create same table 

INSERT INTO dbo.League_Table 
SELECT t.leagueID,t.teamName,0,0,0,0,0,null,null,null 
FROM dbo.League_Table_old t --insert values to new table 
+0

Vielen Dank für Ihre Antwort Sagi. Eine kleine Frage: Wie setzt man am Ende des alten Tabellennamens ein Inkrement, so dass es für jede alte Liga-Tabelle am Ende eine Zahl enthält, um die Namen eindeutig zu halten? –

+0

Nein sicher, ich folge .. Bitte formulieren Sie die Frage – sagi

+0

Sie sagten, die Ligatabelle zu dbo.League_Table_old umbenennen, was in Ordnung ist, aber wenn ich eine andere Saison absolvieren, werde ich eine andere dbo.League_Table_old haben. Gibt es eine Möglichkeit, dbo.League_Table_old1 und dbo.League_Table_old2 zu machen? –