Bekräfta att dessa två frågor är lika

Databaser & SQL

2 svar · 189 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Trådstart#1
1: SELECT TOP 1 lngID + 1 FROM tabell ORDER BY lngID DESC

2: SELECT Nz(Max(lngID) + 1, 1) FROM tabell

Jag fick nämligen ett skumt fel (som förmodligen har med en annan sak att göra):

Error: 3001
Description: Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.
DBMS: Access via OleDb

Jag tror att det här har uppkommit på grund av att min användarhantering och att ConnectionString.Property("User ID") har kajkat ihop. Jag tänkte bara vara på den säkra sidan.

Medlem sedan dec. 200012 464 inlägg
#2

De är inte lika, det blir olika resultat om tabellen är tom.

Select max returnerar alltid ett resultat även om tabellen är tom vilket inte select top gör.

Medlem sedan dec. 20003 887 inlägg
#3

Ok. Jag tänkte lite bakvänt att null + 1 = 1.

Tackar!

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)