SQL如何判断字段值大小超出值不给写入新数据,用触发器写

 我来答
荼糜ZDW
推荐于2018-05-01 · TA获得超过118个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:145万
展开全部

这样的触发器可以写,但是实际上Oracle在插入数据之前超出字段长度,本身就会弹出警告的,这样就显得触发器多余了。

不过,我也给你贴上触发器的代码,供你参考:

CREATE OR REPLACE TRIGGER trg_zdw_test_i
    before INSERT ON BISDBA.zdw_test
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
DECLARE
    I_LENG INTEGER;
BEGIN
    select data_length
      INTO I_LENG
      FROM cols a
     where a.table_name = 'ZDW_TEST'
       and a.COLUMN_NAME = 'SN';
    if :NEW.SN > I_LENG THEN
        return;
    end if;
END;

希望对你有帮助。

greystar_cn
2015-09-10 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
Create Table Student( --学生表
StudentID int primary key, --学号
age int
)
--insert 触发器
create trigger tri_insert
on student --将要进行更改的表名
for insert --给表插入一条数据的时候触发
as
declare @age int --定义一个变量
select @age =age from inserted --把查询出的指定字段的值赋值给变量

if @age >20
begin
raiserror('age error!',16,8)
rollback tran
end
go
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式