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的

第一个分隔符若为and之类的关键字,注意俩边要有空格。

注意这个函数不能跳过空的字符串,只能跳过null,所以如果里面的字符串项中若有判断语句,一定不要把字符串赋值为空。

if exists(select * from sysobjects where name='tg_update_a')

drop trigger tg_update_a

go

create trigger tg_update_a

on 你的表名   -- 改成你的表名

for update

as

declare @id int   --把id改成你这个表里的标识列的列名,如果类型不一样的话,把int类型也改一下。。

select @id = id from inserted   

if((select a from inserted where id = @id)<0)

    update cardinfo set a=0 where id = @id

--where里的id不要的话,就是把你a字段内的每一行数据都更改成0.


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

原文地址: http://outofmemory.cn/sjk/6475992.html

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

发表评论

登录后才能评论

评论列表(0条)

保存