Je veux créer vue indexée avec un tel t-sql:problème avec la création Indexed Affichage et GROUP BY dans 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))
Je dois faire un groupe par que par datepart de la colonne Object_CreationDate
(type datetime2).
Je souhaite également définir l'index sur les colonnes Theme_Id
et Object_CreationDate
dans la vue dérivée.
Si j'utilise cast(CONVERT(varchar(8), m.Mention_CreationDate, 112)AS DateTime)
dans SELECT - je vais avoir des problèmes avec l'index sur cette colonne. Parce que cette colonne (Object_CreationDate
) n'est pas déterministe.
Je me demande s'il est possible de résoudre un problème.
Merci, ça aide. Mais quand j'essaye de mettre l'index avec la commande créer l'index unique IX_Theme_ID_Object_CreationDate sur [Vue] (Theme_ID, Object_CreationDate) - sql donne une erreur qui parce que je n'ai pas l'index groupé unique sur cette vue, je ne peux pas ajouter cet index. –
Vous devez identifier un "index cluster unique" exactement comme indiqué dans le message d'erreur. peut-être "Table1_ID". De quelle autre manière SQL Server saura-t-il quelle ligne est quoi s'il n'y a pas de clé unique pour le viw indexé? – gbn
ok, merci, je comprends –