webForumDet fria alternativet

Vy med typad null-kolumn med index

Databaser & SQLur Databashanterare & SQL

1 svar · 357 visningar · startad av bohlin

bohlinMedlem sedan mars 2000263 inlägg
#1

Har ett problem med en vy, som har en datetime-kolumn som alltid är NULL, när jag försöker skapa ett index på denna vy. Det är en SQL Server 2005-databas.

Jag skapar en vy:

CREATE VIEW vy WITH SCHEMABINDING
SELECT id, namn, null FROM Personer

I denna vyn blir tredje kolumnen av datatypen INT. Det går bra att skapa index på denna vy. Men jag vill att tredje kolumnen ska vara av datatypen datetime.

CREATE VIEW vy WITH SCHEMABINDING
SELECT id, namn, CAST(null AS datetime) FROM Personer

Hit är det inga problem, vyn skapas och kolumnen är av datatypen datetime och det är null överallt. Problemet kommer när jag vill lägga på ett index. Det går ej att skapa ett index eftersom "The view contains a convert that is imprecise or non-deterministic". Går det att lösa på något sätt?
har även provat:

CREATE VIEW vy WITH SCHEMABINDING
SELECT id, namn, CAST('1900-01-01 00:00:00' AS datetime) FROM Personer

Men det blir samma problem när indexet ska skapas.

bohlinMedlem sedan mars 2000263 inlägg
#2

Jag har tillfälligt löst problemet genom att i Personer-tabellen lägga till ett fält DummyDate som är datetime.
Sedan i vyn:

CREATE VIEW vy WITH SCHEMABINDING
SELECT id, namn, DummyDate FROM Personer

Men det känns inte optimalt precis....

260 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
132 ms — hämta forumlista (db)
126 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)