
这个问题用触发器解决比较好,用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可以为负数吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)