Ciao a tutti.
Ho a che fare con una tabella così definita (e non posso modificarne la struttura):
CREATE TABLE [dbo].[UncObj] (
[Codice] [int] NOT NULL,
[DescrizioneNomenclatura] [varchar](80) NOT NULL,
[Ubicazione] [char](6) NULL,
[Valore] [decimal](18,3) NOT NULL,
[Attivo] [char](1) NOT NULL,
CONSTRAINT [PK_UncObj] PRIMARY KEY CLUSTERED
(
[Codice] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Il campo Codice non è autoincrementante (non è definito come Identity).
Per l'inserimento di record uso, per esempio, questa SQL:
INSERT INTO UncObj(Codice, DescrizioneNomenclatura, Ubicazione, Valore, Attivo)
VALUES((SELECT COALESCE(MAX(Codice), 0) + 1 FROM UncObj), 'blabla', 'pippo1', 10.0, 'S');
In questo modo riesco a “simulare” un autoincrement, ma non è l'unico modo di generare quei valori (in altri casi, il campo Codice viene auto-generato richiamando una Function definita in SQL Server che fa delle considerazioni e genera il codice).
Domanda: esiste un modo (e se si come) per ottenere il valore del campo Codice generato DOPO la insert? O, in alternativa, esiste un modo (e se sì come) per ottenere TUTTO il record appena inserito?
PS: sì, tutto sarebbe stato più semplice se fosse un Identity, ma purtroppo per ragioni aziendali non può essere tale.