怎么快速的学会SQLserver触发器,本人对数据库的查询,修改等语句是知道的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么快速的学会SQLserver触发器,本人对数据库的查询,修改等语句是知道的。相关的知识,希望对你有一定的参考价值。

你看插入触发器这个例子吧
有A表 B表
id name id name
1 aa
2 bb
--创建触发器
create trigger inserttriger on A for insert
as
declare @id int,@name varchar(32)
--inserted表是用于存放新增的记录,在插入记录时,系统执行触发器,自动在内存中创建inserted表,将新增记录存放在inserted表中。
select @id=id,@name=name from inserted
insert into B values(@id,@name)
go

--测试
insert into A values(3,'cc')

下面是inserted表和deleted表的存放信息
修改操作 inserted表 deleted表
增加(INSERT)记录 存放新增的记录 ------
删除(DELETE)记录 - ---- 存放被删除的记录
修改(UPDATE)记录 存放更新后的记录 存放更新前的记录

自己尝试写下删除和修改触发器,基本就能理解了。
参考技术A 就是找个例子 多是两次
这个代码就创建了 触发器
ALTER TRIGGER [v_xsdd_INSERT] ON [dbo].[v_xsdd]
INSTEAD OF INSERT
AS
--插入触发器K01
set nocount on
--基础信息表
if exists(select * from inserted where isnull(jlsjh,'')='')
insert into xsdd(xs,djbh,pzbm,sl,cbdj,dj,je,sx,bz)
select xs,djbh,pzbm,sl,cbdj,dj,sl*dj,sx,bz from inserted
else
insert into xsdd(xs,djbh,pzbm,sl,cbdj,dj,je,sx,bz,jlsjh)
select xs,djbh,pzbm,sl,cbdj,dj,sl*dj,sx,bz,jlsjh from inserted
参考技术B 看sql的帮助。

sqlserver怎么创建存储过程

参考技术A SQL 创建存储过程:
一、基础语法:
create proc | procedure pro_name
[@参数数据类型 [=默认值] [output],
@参数数据类型 [=默认值] [output],
....
]
as
SQL_statements

二、常见创建存储过程实例
1、创建不带参数存储过程
create proc proc_get_student
as
select * from student;
执行存储过程:
exec proc_get_student;
2、 带参存储过程
create proc proc_find_stu(@startId int, @endId int)
as
select * from student where id between @startId and @endId
执行存储过程:
exec proc_find_stu 2, 4;
3、 带通配符参数存储过程
create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%')
as
select * from student where name like @name and name like @nextName;
执行存储过程:
exec proc_findStudentByName;
exec proc_findStudentByName '%o%', 't%';
4、 带输出参数存储过程
create proc proc_getStudentRecord(
@id int, --默认输入参数
@name varchar(20) out, --输出参数
@age varchar(20) output--输入输出参数
)
as
select @name = name, @age = age from student where id = @id and sex = @age;
执行存储过程:
declare @id int,
@name varchar(20),
@temp varchar(20);
set @id = 7;
set @temp = 1;
exec proc_getStudentRecord @id, @name out, @temp output;
select @name, @temp;
print @name + '#' + @temp;

以上是关于怎么快速的学会SQLserver触发器,本人对数据库的查询,修改等语句是知道的。的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 添加一条数据就在这条数据末尾储存当前时间 不知道怎么写这个触发器。 请大家帮帮忙!

sqlserver 怎么清空表

sqlserver怎么创建存储过程

sqlserver数据库的索引视图和触发器

SQLServer2008基础教程的内容简介

初学者怎么快速学会SQL