所以我有一个以标识列作为主键的表,因此它是一个整数。那么,为什么SCOPE_IDENTITY()
总是向我的 C# 应用程序返回十进制值而不是 int?这真的很烦人,因为十进制值不会在 C# 中隐式转换为整数,这意味着我现在必须重写一堆东西并有很多辅助方法,因为我使用 SQL Server 和 Postgres,其中 Postgres 确实返回一个整数等价函数..
为什么SCOPE_IDENTITY()
不只是返回一个普通整数?是否有人通常使用十进制/非同一值作为主键?
在 SQL Server 中,IDENTITY
属性可以分配给tinyint
, smallint
, int
, bigint
, decimal(p, 0)
, or numeric(p, 0)
列。因此SCOPE_IDENTITY
函数必须返回可以包含上述所有内容的数据类型。
正如之前的答案所说,只需将其投射到int
返回它之前在服务器上,然后 ADO.NET 将按照您的预期检测其类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)