因此Scope_Identity()在 SQL Server 中返回一个 ?-Byte 数字类型。
这并不可怕。
是否有一种安全的方法可以在选择查询中将其转换为 int,这样我们就不必在 ODBC Wrapper 中管理 SQL Server 的每一个奇思妙想?
因此Scope_Identity()在 SQL Server 中返回一个 ?-Byte 数字类型。
这并不可怕。
是否有一种安全的方法可以在选择查询中将其转换为 int,这样我们就不必在 ODBC Wrapper 中管理 SQL Server 的每一个奇思妙想?
如果标识所属的源列是 Integer,则无需强制转换。假设标识列是一个整数开头或者它适合一个“Int”,那么下面的工作就很好。
DECLARE @NewIdent Int
SET @NewIdent = SCOPE_IDENTITY()
SELECT CAST( bigintcolumn AS int )
(前提是您知道它将适合 32 位整数)
就像这样:
select CAST(SCOPE_IDENTITY() as int)
还有你的数据层:
reader.GetInt32(0);