2009-06-16 9 views

risposta

14

Se la colonna di origine a cui appartiene l'identità è un numero intero, non c'è bisogno per lanciarla. Il seguente funziona bene supponendo che la colonna Identity sia un intero per iniziare o che si adatti a un "Int".

DECLARE @NewIdent Int 
SET @NewIdent = SCOPE_IDENTITY() 
+3

Quindi il cast è curato nel processo di assegnazione a NewIdent, ma continua a trasmettere. – lowerkey

+0

Non funziona per me, SQL2016, restituisce solo i decimali (18,0) per me, ho dovuto convertirlo in int –

12
SELECT CAST(bigintcolumn AS int) 

(a condizione di sapere che si adatta a un intero a 32 bit)

+0

Questo è quello che ho pensato, io non sono sicuro perché non funziona però. Stava ritornando 0. –

2

appena lanciato questo tipo:

select CAST(SCOPE_IDENTITY() as int) 

E la parte dati:

reader.GetInt32(0);