webForumDet fria alternativet

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

Databaser & SQL

2 svar · 177 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Frågan#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!

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)