SQL数据库创建字段如何让数字不为负数

SQL数据库创建字段如何让数字不为负数,第1张

这个问题用触发器解决比较好,用check

只能设定字段不为负数,但是要变为0就难了。

用check的话如下:

alter

table

表名

add

constraint

约束名

check

(字段>0)

用触发器的话

create

trigger

a_num

on

表名

instead

of

insert

as

begin

declare

@列1

数据类型1,@列2

数据类型2,列3

数据类型3

select

@列1

=

列1,@列2=列2,@列3

=

列3

from

inserted

if

@列1<0

set

@列1

=

0

else

set

@列1

=@列1

insert

into

表名(列1,列2,列3)

values

(@列1,@列2,@列3)

end

这里我假设你列是要大于等于0,小于0的时候自动变为0的

假定表中有一个字段名为“数量”,创建一个窗体,窗体的数据源是这个表,窗体上有名称为“数量”的绑定控件,控件来源绑定为这个表的“数量”。

在窗体的“数量”控件的属性中的选择“事件”>“更新后”事件,输入以下代码即可:

Private Sub 数量_AfterUpdate()

If 数量 > 0 Then

数量 = -1 数量

End If

End Sub

这样就达到您的要求,也就是说,如果输入是正数,则转变为负数;输入是负数仍为负数。

还有个问题,以上设计窗体输入正数,表中是负数,但如果窗体上显示已存在于表中的数据也会显示为负数,就是说在窗体上查看既往数据会显示为负数,如果不想这样(表中负数,窗体显示还是正数),只要在“数量”控件的属性中“格式”中输入 #;# 即可。至于数字类型的格式#;#的含义参看access的帮助,简单的说一下,分号前面定义正数格式,分号后面的定义负数格式,如果改为#;-#,就会显示负号,如果改为#;(#),则-50显示为(50)。

可以为负值。

Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部dao份以及小数部分的位数。

使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal即可,存储数据范围是:-^8~^8- 的固定精度和小数位的数字,一个decimal类型的数据占用了~7个字节。

扩展资料:

一单位的统计服务器投入使用后,运行速度较慢,经排查原因,发现SQLServer中的内存选项(Memory)仅为安装缺省值16MB(而服务器有128MB的物理内存)在将;

内存值调整为100MB时却误将其改成了1000MB,使得SQL Server服务不能启动,统计数据库打不开,也就不能再次进入SQL Enterprise Manager修改内存设置了。

既然SQL Server可用内存设置值远远大于物理内存,造成SQLServer服务不能启动,何不扩充虚拟内存呢经设法将机器虚拟内存扩充至1000MB并重新启动,SQL Server数据库成功启动,问题迎刃而解。

日志文件的大小跟数据文件是没有太大的关联的,关键是看你一次提交的事务的大小(要估计最大量),日志文件大小可以设置为最大的一次事务提交的大小的2-3倍就可以了(如果不方向就再大些),然后经常备份日志就可以了。

数据库及其日志一定要经常备份,不然就算你设置的日志文件再大也不行的。

是nid的值超过int(11)的最大值了\

是超出了,mysql中int型数据的最大值是2147483647, 要想保存这么大的数据必须将数据类型改成改成bigint

以下参考>

直接update 更新啊·你的表列名是啥啊·比如说你想把负3000变成正3000,比如你的3000这一列的列名叫num,你的表名叫table1那么你就可以这样:update table1 set num=3000 where num=3000

以上就是关于SQL数据库创建字段如何让数字不为负数全部的内容,包括:SQL数据库创建字段如何让数字不为负数、Access数据库 在窗体中,我希望输入的数值(正数)能够自动在表中表达成为负数、mysql decimal可以为负数吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9397828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存