Ich möchte mit indizierten Sicht um eine solche T-SQL:Problem mit dem Erstellen von indizierte Sicht und diese Gruppe von in SQL Server 2008 R2
Select
Table1_ID,
cast(CONVERT(varchar(8),
t2.Object_CreationDate, 112)AS DateTime) as Object_CreationDate ,
Count_BIG(*) as ObjectTotalCount
from
[dbo].Table2 t2 inner join [dbo].Table1 t1 on ...
Group BY
Table1_ID, CONVERT(varchar(8), t2.Object_CreationDate, 112))
Ich brauche Gruppe von nur durch Datumsteil der Spalte zu machen Object_CreationDate
(Typ datetime2).
Auch ich möchte Index auf Spalten Theme_Id
UND Object_CreationDate
in der abgeleiteten Ansicht setzen.
Wenn ich cast(CONVERT(varchar(8), m.Mention_CreationDate, 112)AS DateTime)
in SELECT verwende - bekomme ich Probleme mit Index für diese Spalte. Weil diese Spalte (Object_CreationDate
) nicht deterministisch ist.
Ich frage mich, ob es möglich ist, ein Problem zu lösen.
Danke, es hilft. Aber wenn ich versuche, Index mit Befehl zu setzen, erzeuge eindeutigen Index IX_Theme_ID_Object_CreationDate auf [Ansicht] (Theme_ID, Object_CreationDate) - sql geben einen Fehler, dass, weil ich keinen eindeutigen gruppierten Index für diese Ansicht habe, ich diesen Index nicht hinzufügen kann. –
Sie müssen einen "eindeutigen gruppierten Index" genau identifizieren, wie die Fehlermeldung sagt. vielleicht "Table1_ID". Wie sonst wird SQL Server wissen, welche Zeile was ist, wenn es keinen eindeutigen Schlüssel für das indizierte viw gibt? – gbn
ok, danke, ich verstehe –