2009-06-16 13 views

Odpowiedz

14

Jeśli kolumna źródło, do którego należy tożsamość jest liczbą całkowitą, nie ma potrzeby, aby ją rzucić. Poniższe działa dobrze, zakładając, że kolumna tożsamości jest liczbą całkowitą na początek lub pasuje do "Int".

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

Tak więc obsada została zaopiekowała się procesem przydzielania do NewIdent, ale wciąż jest rzutowana. – lowerkey

+0

To nie działa dla mnie, SQL2016, po prostu zwraca dziesiętnie (18,0) dla mnie, musiałem przekonwertować go do int –

12
SELECT CAST(bigintcolumn AS int) 

(Pod warunkiem, że wiemy to będzie pasować do całkowitej 32bit)

+0

To, co myślę, nie jestem pewien, dlaczego to nie działa choć. T'zwracał 0. –

2

Wystarczy rzucić to tak:

select CAST(SCOPE_IDENTITY() as int) 

A twój Warstwa danych:

reader.GetInt32(0); 
Powiązane problemy