Erstellt eine berechnete Spalte mit Daten aus einer anderen Tabelle

8

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?

    
Smartboy 21.11.2012, 08:06
quelle

5 Antworten

21

Sie können dafür eine benutzerdefinierte Funktion erstellen:

%Vor%

Die berechnete Spalte kann dann wie folgt hinzugefügt werden:

%Vor%

Ich würde jedoch eher eine Ansicht dafür machen:

%Vor%     
jeroenh 21.11.2012, 08:11
quelle
7

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):

%Vor%

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.

    
Damien_The_Unbeliever 21.11.2012 08:13
quelle
0

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%     
Joe G Joseph 21.11.2012 08:15
quelle
0

Das wird funktionieren

%Vor%     
Ranish 21.11.2012 08:26
quelle
-2

probiere das

aus %Vor%     
SRIRAM 21.11.2012 08:12
quelle