mikyweb79 ha scritto:
si vero , sai cosa è la forza dll' abitudine di fare le cose + semplici e banali possibili.
...che è l'approccio corretto, secondo il vecchio acronimo "KISS!" (che non sta per "bacio" ma per "keep it simple, stupid!")
e come diceva Einstein: "
everything should be made as simple as possible, but no simpler"
Probabilmente il mio sistema è banale e semplice da capire , il tuo + professionale.
Non credo sia tanto un problema di semplicità vs. professionalità. Alla fine è la stessa identica cosa (internamente il db engine fa più o meno la stessa operazione) solo viene cambiato il destinatario dell'onere della computazione dei record. Probabilmente SQL Server lo sa fare meglio di ADO + VBScript. Tutto qui.
Ma dimmi una cosa , con
SELECT COUNT(CampoId) AS TotaleRecord FROM MiaTabella
non si basa sul campo id vero ? sennò se fosse cancellato un record si creerebbe un buco.
Immagino tu intenda se mi vado a leggere l'ultimo ID. La risposta è ASSOLUTAMENTE NO! L'ultimo id è dato da:
SELECT MAX(CampoId) AS LastId FROM MiaTabella
E chiaramente non può e non deve essere scambiato per il conto dei record. Oltre al motivo che dicevi tu (record cancellati) ce ne sono altri, ad esempio: non è detto che l'autoincrement parta da 1 e che lo step di incremento sia unitario.
Come precisato in precedenza "CampoId" indica una chiave primaria (indicizzata) per migliorare le performance dell'operazione, non necessariamente un ID autoincrementante (che non è detto che ci sia!)
L'operatore COUNT di sql "conta" i record effettivi presenti in una tabella. Per maggiori informazioni:
COUNT - Transact-SQL Reference