1

我想在 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 数据类型是希望进行此类计算,但我不知道正确的代码需要帮助......

4

1 回答 1

1

您可以查看此链接,它肯定会回答您的查询:- http://blog.sqlauthority.com/2008/09/29/sql-server-puzzle-solution-computed-columns-datatype-explanation/

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

于 2013-01-19T08:37:04.203 回答