这应该是一个简单的程序,但我遇到了麻烦。我有一个插入命令。其中一个值需要=到-1。该字段被定义为一个小整数,因此它应该接受正值和负值。
插入语句是
insert into MasterData2 ([Ad],[Phase],[Page Type] , [Page], [Percent] , [Change Type],[UserName], [Timestamp], [Qty])
values(@Ref, @PhaseName , @PageType , @Page , @Percent ,@ChngType, @UserName, @Timestamp, -1)
字段[数量]需要为-1
答案 0 :(得分:1)
如果需要存储POSITIVE和NEGATIVE值,则可以使用的最小整数类型是smallint。 tinyint仅适用于0到255的POSITIVE值。
MSDN参考:tinyint, smallint, int, bigint
Data type | Range
======================
bigint | -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
int | -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
smallint | -2^15 (-32,768) to 2^15-1 (32,767)
tinyint | 0 to 255
参见示例:
create table #tmp (t tinyint, x smallint)
insert #tmp select 1,-1
-- OK
insert #tmp select -1,-1
--
Msg 220, Level 16, State 2, Line 1
Arithmetic overflow error for data type tinyint, value = -1.
The statement has been terminated.