12

因此Scope_Identity()在 SQL Server 中返回一个 ?-Byte 数字类型。

这并不可怕。

是否有一种安全的方法可以在选择查询中将其转换为 int,这样我们就不必在 ODBC Wrapper 中管理 SQL Server 的每一个奇思妙想?

4

3 回答 3

18

如果标识所属的源列是 Integer,则无需强制转换。假设标识列是一个整数开头或者它适合一个“Int”,那么下面的工作就很好。

DECLARE @NewIdent Int
SET @NewIdent = SCOPE_IDENTITY()
于 2009-06-16T14:32:52.517 回答
13
SELECT CAST( bigintcolumn AS int )

(前提是您知道它将适合 32 位整数)

于 2009-06-16T14:31:26.203 回答
3

就像这样:

select CAST(SCOPE_IDENTITY() as int)

还有你的数据层:

reader.GetInt32(0);
于 2017-05-16T13:44:49.840 回答