Ich habe eine SQL Server 2008 R2-Datenbank. Diese Datenbank hat zwei Tabellen namens Pictures und PictureUse.
Die Bildtabelle hat die folgenden Spalten:
%Vor%Die PictureUse-Tabelle enthält die folgenden Spalten:
%Vor% Ich muss eine berechnete Spalte in der Tabelle Picture
erstellen, die mir sagt, wie oft dieses Bild angeklickt wurde. Hilfe?
Eine berechnete Spalte darf nur auf andere Spalten in derselben Tabelle verweisen. Sie könnten (wie Jeroenh's Antwort ) eine UDF verwenden, aber die Spalte wird nicht gespeichert oder indexierbar sein und so muss jedes Mal neu berechnet werden, wenn auf die Zeile zugegriffen wird.
Sie könnten eine indizierte Sicht erstellen , die diese Informationen enthält (wenn ich vermute, dass dies nur die Anzahl der Zeilen von PictureUse
ist):
Hinter den Kulissen erstellt SQL Server effektiv eine Tabelle, die die Ergebnisse dieser Ansicht enthält, und jede Einfügung, Aktualisierung oder Löschung an PictureUse
führt diese Ergebnistabelle automatisch für Sie durch.
Sie müssen die berechnete Spalte nicht zu Ihrer Tabelle hinzufügen, da nach der Aktualisierung, wenn die ursprünglichen Tabellendaten geändert wurden und die Daten inkonsistent werden, Sie diese select-Anweisung verwenden können, um die Spaltenanzahl abzurufen oder sie zu erstellen als eine Ansicht
%Vor%Tags und Links sql sql-server sql-server-2008 tsql calculated-columns