Je suis en train de faire ce qui suit pour ma table de journaux IIS:Pourquoi est-ce que [date] + ([heure] - [décalage]) est non déterministe dans SQL Server 2008?
ALTER TABLE [W3CLog]
ADD [LogTime] AS [date] + ([time] - '1900-01-01') PERSISTED
Cependant, SQL Server 2008 me dit:
Computed column 'LogTime' in table 'W3CLog' cannot be persisted because the column is non-deterministic.
La table a cette définition:
CREATE TABLE [dbo].[W3CLog](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
...
[date] [datetime] NULL,
[time] [datetime] NULL,
...
)
Pourquoi est-ce non déterministe?
J'ai vraiment besoin d'indexer ce champ. La table a actuellement 1598170 lignes, et il est difficile d'interroger si nous ne pouvons pas faire une recherche d'index sur le temps plein. Comme il s'agit d'UNION avec d'autres formats de journaux, nous ne pouvons pas très facilement utiliser les deux colonnes séparément.
Pouvez-vous utiliser 'CONVERT (datetime, '19000101', 112)'? – Gabe