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