update 相关

Guoyuyu 2003-10-15 05:23:43
表中三个字段
aa,bb,cc
使cc=aa*1000000/bb
aa,bb 为int型
cc 为char(20)

update table1 set cc=aa*1000000/bb where bb<>0
却提示出错:
Server: Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type int.
The statement has been terminated.

如果改为100000就行了。
这是为什么?
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bitfubin 2003-10-15
  • 打赏
  • 举报
回复
update table1 set cc=cast(cast(aa as numeric(20))*1000000/bb as char(20)) where bb<>0
这个不行找我就可以了。。。
pengdali 2003-10-15
  • 打赏
  • 举报
回复
update table1 set cc=cast(cast(aa as numeric(20))*1000000/bb as char(20)) where bb<>0
yujohny 2003-10-15
  • 打赏
  • 举报
回复
你改用bigint试试
pengdali 2003-10-15
  • 打赏
  • 举报
回复
update table1 set cc=cast(aa*1000000.0/bb as char(20)) where bb<>0
txlicenhe 2003-10-15
  • 打赏
  • 举报
回复
update table1 set cc=cast(cast(aa*1000000 as bigint)/bb as char(20)) where bb<>0
pengdali 2003-10-15
  • 打赏
  • 举报
回复
update table1 set cc=cast(aa*1000000/bb as char(20)) where bb<>0
txlicenhe 2003-10-15
  • 打赏
  • 举报
回复
超出字段能允许的最大范围:

下表说明在 Microsoft SQL Server 数据库中定义的,或在 Transact-SQL 语句中引用的各种对象的最大值(数量或大小)。下表不包含 Microsoft® SQL Server 2000™ Windows® CE 版。

最大值(数量或大小)
对象 SQL Server 7.0 SQL Server 2000
批处理大小 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1
每个短字符串列的字节数 8,000 8,000
每个 text、ntext、或 image 列的字节数 2 GB-2 2 GB-2
每个 GROUP BY、ORDER BY的字节数 8,060
每个索引中的字节数 900 9002
每个外键的字节数 900 900
每个主键的字节数 900 900
每行字节数 8,060 8,060
存储过程源文本中的字节数 批处理大小之较小者或者 250 MB 批处理大小之较小者或者 250 MB
每个数据表的聚集索引数 1 1
GROUP BY、ORDER BY 中的列数 只受字节数限制
GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目 10
每个索引的列数 16 16
每个外键的列数 16 16
每个主键的列数 16 16
每个基础数据表的列数 1,024 1,024
每个SELECT 语句的列数 4,096 4,096
每个INSERT 语句的列数 1,024 1,024
每个客户端的连接个数 已配置连接的最大值 已配置连接的最大值
数据库大小 1,048,516 TB3 1,048,516 TB3
每个 SQL Server 实例的数据库个数 32,767 32,767
每个数据库的文件组个数 256 256
每个数据库的文件个数 32,767 32,767
文件大小(数据) 32 TB 32 TB
文件大小(日志) 4 TB 32 TB
每个数据表的外键表引用 253 253
标识符长度(以字符计) 128 128
每台计算机的实例数 暂缺 16
包含 SQL 语句的字符串长度(批处理大小) 65,536 * 网络数据包大小1 65,536 * 网络数据包大小1
每个连接的锁数 每个服务器的最大锁数 每个服务器的最大锁数
每个 SQL Server 实例的锁数 2,147,483,647(静态)
SQL Server 40% 的内存(动态) 2,147,483,647(静态)
SQL Server 40% 的内存(动态)
嵌套存储过程层数 32 32
嵌套子查询 32 32
嵌套触发器层数 32 32
每个数据表的非聚集索引个数 249 249
SQL Server 实例中同时打开的对象个数4 2,147,483,647(或可用内存) 2,147,483,647(或可用内存)
每个数据库中的对象个数 2,147,483,6474 2,147,483,6474
每个存储过程的参数个数 1,024 1,024
每个数据表的 REFERENCE 个数 253 253
每个数据表的行数 受可用存储资源限制 受可用存储资源限制
每个数据库的数据表个数 受数据库中的对象个数限制4 受数据库中的对象个数限制4
每个 SELECT 语句的数据表个数 256 256
每个数据表的触发器个数 受数据库中的对象个数限制4 受数据库中的对象个数限制4
每个数据表的 UNIQUE 索引个数或约束个数 249个非聚集索引和 1 个聚集索引 249个非聚集索引和 1 个聚集索引

SQL联机,索引中输入:
规范-SQL Server 对象

可以得到更多信息

/******************************** 字段 *******************/

整数
bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整数数据。

tinyint

从 0 到 255 的整数数据。

bit
bit

1 或 0 的整数数据。

decimal 和 numeric
decimal

从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。

numeric

功能上等同于 decimal。

money 和 smallmoney
money

货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。

smallmoney

货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

近似数字
float

从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。

real

从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。

datetime 和 smalldatetime
datetime

从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。

smalldatetime

从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

字符串
char

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar

可变长度的非 Unicode 数据,最长为 8,000 个字符。

text

可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

Unicode 字符串
nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar

可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

ntext

可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

二进制字符串
binary

固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大长度为 8,000 个字节。

image

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

其它数据类型
cursor

游标的引用。

sql_variant

一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。

table

一种特殊的数据类型,存储供以后处理的结果集。

timestamp

数据库范围的唯一数字,每次更新行时也进行更新。

uniqueidentifier

全局唯一标识符 (GUID)。





22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧