SQL server语言 - 如何转换计算列的数据类型



我想转换sql server中列的数据类型我使用的列是计算的,但它没有给出预期的结果,如果我插入两个较大的整数值,它说算术溢出记录没有提交。我有下面的代码为它。

CREATE TABLE mytable(
    firstcol [int] NULL,
    secondcol [int] NULL,
    computedcol  AS (firstcol * secondcol)

,但当我输入10位数的操作作为加法或乘法它支持,但如果我做123456789 * 123456789它显示算术溢出错误和记录无法提交。可能意味着computedcol数据类型是int和sql server中的int数据类型最多为10位,如果超过它显示溢出错误,bigint数据类型是处理此类计算的希望,但我不知道正确的代码需要帮助,请....

你可以看看这个链接,它一定会回答你的疑问:- http://blog.sqlauthority.com/2008/09/29/sql-server-puzzle-solution-computed-columns-datatype-explanation/

当操作符组合两个不同数据类型的表达式时数据类型优先级规则指定具有较低优先级转换为具有较高优先级的数据类型优先级。我们可以转换计算对象的一种数据类型列定义为我们想要的数据类型,它可以解决问题。

最新更新