【发布时间】:2009-06-16 14:28:36
【问题描述】:
所以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);
【讨论】: