我如何转换计算列的数据类型

时间:2013-01-19 08:33:20

标签: 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数据类型是hadeling这样的计算的希望,但我不知道正确的代码需要帮助请....

1 个答案:

答案 0 :(得分:1)

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

  

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