• 首页>范文 > 范文
  • 数据库触发器怎么写

    1.SQL数据库中的触发器怎么写啊

    CREATE TRIGGER trig_stu_update ON student

    FOR UPDATE

    AS

    begin

    end;

    CREATE TRIGGER trig_stu_delete ON student

    FOR DELETE

    AS

    begin

    end;

    ------------------

    上面是更新、删除的触发器模板,将你的代码填在begin。end之间。

    触发器中经常用到的inserted,deleted。

    inserted里面存放了insert、update操作的插入值或更新后值。

    deleted里存放的是update、delete操作的更新前值或删除值。

    使用方法:

    declare @no int,@sex bit,@age int;

    --insert、update取新值

    select @no=no,@sex=sex,@age=age from inserted;

    --delete、update删除值

    select @no=no,@sex=sex,@age=age from deleted;

    2.请问这个数据库触发器怎么写

    --楼主这样离谱的数据能成功是因为你的数据类型的问题 你整的是字符串吧? 要么就是大日期型

    --支持9999年 你那个日期格式也没有问题 肯定可以插入啊 你可以把数据类型改为smalldatetime 你

    --这个数据就插入不进去 我帮你改下触发器吧 你这样其实只是对插入有效 如果是更新呢

    --你这个触发器就管不了了

    create trigger tr_age1

    on student

    for insert

    as

    if exists(select 1 from inserted where DATEDIFF(YEAR,birth,getdate()) between 15 and 45)

    begin

    rollback

    print'年龄只能在15-45区间'

    end

    else

    print'修改成功'

    3.SQL触发器怎么写

    --此题唯一的难度是用户名 假设用户名已保存在表CurrentUser中

    --给出插入操作的触发器创建 其他类似

    CREATE TRRIGER MYTR1

    ON A

    FOR INSERT

    AS

    DECLARE @UserName varchar(20)

    SELECt @UserName=UserName from CurrentUser

    INSERT INTO C (TableName,Type,dDate,UserName) VALUES ('A','Insert',getdate(),@UserName)

    GO

    4.数据库中的触发器怎么写

    建议不要使用系统的关键字把ID该为其他的字段名create trigger yxon 评论表after insertasdeclare @N bigintdeclare @NO varchar(50)------select @NO=商品ID from insertedselect @N=评论人数 from 商品表 where 商品ID=@NOUPDATe 商品表 set 评论人数=@N+1 where 商品ID=@NO我不知道你的表怎么做的所以具体的还是要你自己来改.有什么不懂,在提出来.这个是评论次数,不能算是评论人数,一个人可以评论多次而且算数,如果要统计人数还要在 用户名 上做文章。

    5.数据库中的触发器怎么写

    建议不要使用系统的关键字把ID该为其他的字段名

    create trigger yx

    on 评论表

    after insert

    as

    declare @N bigint

    declare @NO varchar(50)------

    select @NO=商品ID from inserted

    select @N=评论人数 from 商品表 where 商品ID=@NO

    UPDATe 商品表 set 评论人数=@N+1 where 商品ID=@NO

    我不知道你的表怎么做的所以具体的还是要你自己来改.

    有什么不懂,在提出来.

    这个是评论次数,不能算是评论人数,一个人可以评论多次而且算数,

    如果要统计人数还要在 用户名 上做文章

    6.SQL 这个触发器怎么写

    USE [TestDatabaseChar]

    GO

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[AutoUpdate]

    on [dbo].[AttRules]

    for update

    as

    BEGIN

    --直接获取当前更新的那一个PID(主键)

    declare @id int

    select @id = pid from deleted

    --除了主键以外全部更新

    update AttRules set AttRulesIsSelect=0

    update AttRules set AttRulesIsSelect=1 where pid=@id

    end

    7.SQL语句:写一个触发器

    SQL Server用作业调度

    作业的操作

    企业管理器

    --管理

    --SQL Server代理

    --右键作业

    --新建作业

    --"常规"项中输入作业名称

    --"步骤"项

    --新建

    --"步骤名"中输入步骤名

    --"类型"中选择"Transact-SQL 脚本(TSQL)"--插入的SQL脚本

    --"数据库"选择执行命令的数据库

    --"命令"中输入要执行的语句:

    EXEC 存储过程名 。 --该存储过程用于创建表

    --确定

    --"调度"项

    --新建调度

    --"名称"中输入调度名称

    --"调度类型"中选择你的作业执行安排

    --如果选择"反复出现"

    --点"更改"来设置你的时间安排 每月25日

    8.MySQL中触发器怎么写啊

    我有books 和 info 表。

    books表中有 ISBN Allbooks BorrowsBooks info 表有 ISBN Userno Yesorno 当我的 Yesorno 是 YES 时就从BorrowBooks中减去1; 这个触发器我已经写好了。 可有个问题。

    就是当我Yesorno为Yes时。

    books表中的每列Borrowbooks都减去1。

    我的触发器代码如下。

    CREATE TRIGGER `chu` BEFORE INSERT ON `info` FOR EACH ROW BEGIN IF new。 Yesorno='Yes' then UPDATE books SET Borrowbooks=Borrowbooks-1 ; else UPDATE books SET Borrowbooks=Borrowbooks 1 ; end if; END;; 就是update后面的where语句怎么写???让他减去的是你info表中写的ISBN号对应books表ISBN号后面的BorrowBooks数?。

    9.SQL 自动编号触发器怎么写

    --参照,把规则写在触发器

    if object_id ( 'T' ) is not null

    drop table T

    go

    create table T(id char ( 14 ) primary key ,name varchar ( 10 ))

    go

    -- 用触发器完成

    create trigger tr_T_insert on T

    instead of insert

    as

    begin

    declare @i int

    select * into # from inserted

    select @i = isnull ( max (RIGHt(id,4)), 10000 ) from T WHERe LEFt(ID,10)='JC_WYC'+RTRIm(YEAR(GETDATE()))

    update # set id = right ( 10000 + rtrim ( @i ), 4), @i = @i + 1

    insert T select 'JC_WYC'+RTRIm(YEAR(GETDATE()))+RTRIm(ID),name from #

    end

    go

    -- 测试

    insert T (Name)

    select ' a ' union all -- 这里1为任何值都不影响id插入的值

    select ' b '

    select * from T

    go

    数据库触发器怎么写

    发表评论

    登录后才能评论