Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum gibt select SCOPE_IDENTITY() eine Dezimalzahl statt einer ganzen Zahl zurück?

In SQL Server die IDENTITY Eigenschaft kann tinyint zugewiesen werden , smallint , int , bigint , decimal(p, 0) , oder numeric(p, 0) Säulen. Daher die SCOPE_IDENTITY Die Funktion muss einen Datentyp zurückgeben, der alle oben genannten Punkte umfassen kann.

Wie in früheren Antworten gesagt wurde, wandeln Sie es einfach in int um auf dem Server vor der Rückgabe, dann wird ADO.NET seinen Typ wie erwartet erkennen.