2009-05-19 10 views
0

In MSSQL Server 2008 erstellen, wie würde ich über das Erstellen eines geplanten Prozess gehen, die:wie einen geplanten Prozess in SQL Server

die Summe einer float-Spalte in einer Benutzerspalte von bestimmten Benutzern nimmt und dann verglichen werden, die hat die größte Summe und speichert diese Nummer zusammen mit dem Benutzer, der diesen Wert in einer separaten Tabelle auf einer wöchentlichen Basis hat?

Antwort

1

Persönlich bevorzuge ich es, einen Dienst zu schreiben, der regelmäßig Aktionen ausführt, da ich besser kontrollieren kann, wann die Aktionen ausgeführt werden sollen und alles an einem einzigen Ort ist.

Wenn Sie Ihr Problem mit Datenbankmitteln nur lösen möchten, erstellen Sie einfach eine gespeicherte Prozedur, die Ihre Logik implementiert, und rufen Sie diese gespeicherte Prozedur von einem scheduled job.

2

Erstellen Sie einen geplanten SQL Server-Job, der eine gespeicherte Prozedur oder Raw SQL ausführt.

Basierend auf Ihrer Beschreibung könnte die Abfrage wie folgt aussehen:

insert into table (username, sumofcolumn) 
select top 1 username, sum(column) 
from table2 
group by username 
order by sum(column) desc 
+0

Ich bin damit einverstanden, Auslöser für Aufgaben sollten nicht verwendet werden, die nach einem Zeitplan laufen müssen wie ‚einmal pro Woche‘ – edosoft

Verwandte Themen