触发器

SQL 2008 怎么实现删除学生表里面的一条记录,成绩表里面关于这个学生的记录也同时删掉,谢求具体代码

--创建表
IF OBJECT_ID('tstudent') > 0
DROP TABLE tstudent
GO
CREATE TABLE tstudent
(
fstudentno VARCHAR(10) PRIMARY KEY ,
fname NVARCHAR(10),
) IF OBJECT_ID('tScore') > 0
DROP TABLE tScore
CREATE TABLE tScore
(
fstudentno VARCHAR(10) PRIMARY KEY ,
fscroe INT
)
GO --插入测试数据
INSERT dbo.tstudent
( fstudentno, fname )
VALUES ( '', -- fstudentno - varchar(10)
N'小张' -- fname - nvarchar(10)
) INSERT dbo.tScore
( fstudentno, fscroe )
VALUES ( '', -- fstudentno - varchar(10)
90 -- fscroe - int
) --查看插入效果
SELECT *
FROM dbo.tScore
SELECT *
FROM dbo.tstudent --创建触发器
IF ( OBJECT_ID('tgr_DeleteByStudentNo', 'tr') IS NOT NULL )
DROP TRIGGER tgr_DeleteByStudentNo
GO
--创建一个删除的触发器
CREATE TRIGGER tgr_DeleteByStudentNo ON tstudent
AFTER DELETE
AS
DECLARE @strStudentNo VARCHAR(10)
SELECT @strStudentNo = fstudentno
FROM deleted DELETE FROM tScore
WHERE fstudentno = @strStudentNo DELETE FROM tstudent
WHERE fstudentno = '' --查看删除效果
SELECT *
FROM dbo.tScore
SELECT *
FROM dbo.tstudent

计算列

sql中 能否新建一个字段,字段的计算列中写移动平均的计算公式,如果不能应如何计算移动平均

解决方法:

新增2列:一列FF的默认值为一个函数,函数计算上面4行和值

一列为计算列 计算当前行 (Score +FF)/5

CREATE TABLE [dbo].[tScore](
[fstudentno] [VARCHAR](10) NOT NULL,
[fscroe] [INT] NULL,
[fDate] [DATETIME] NOT NULL,
[ff] [DECIMAL](18, 3) NULL,
[AvgScore1] AS (([fscroe]+[ff])/(5)) PERSISTED,
CONSTRAINT [PK__tScore__9DB95AB24AB81AF0] PRIMARY KEY CLUSTERED
(
[fstudentno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] GO SET ANSI_PADDING OFF
GO ALTER TABLE [dbo].[tScore] ADD CONSTRAINT [DF_tScore_fDate] DEFAULT (GETDATE()) FOR [fDate]
GO ALTER TABLE [dbo].[tScore] ADD CONSTRAINT [DF_tScore_ff] DEFAULT ([dbo].[fn_GetAvg]()) FOR [ff]
GO CREATE FUNCTION fn_GetAvg()
RETURNS decimal(18,3)
as
BEGIN
-- 自己统计上面4行数据的和值
RETURN 1.2
END

SQL脚本整理系列 三的更多相关文章

  1. SQL脚本整理系列一 表分区

    表分区的目的: 1.把历史数据放到另外一个表里面 可以提高查询效率 当然如果经常查询历史数据和新数据的合并结果集这样做就大大的不好了 2.通过把一个表放到不同的文件,不同的文件再存储到不同的磁盘列阵中 ...

  2. SQL脚本整理系列一 分隔函数

    原来效果: fName Scroe 王某某 ,, 李某某 , 王某某 李某某 李某某 ,, 王某某 执行后效果: name score 李某某 李某某 李某某 王某某 王某某 王某某 王某某 王某某 ...

  3. 必杀技———SQL基础整理系列(一)

    SQL(Structured Query Language)——结构化查询语言 SQL语言的组成部分 数据定义语言 (DDL:Data Definition Language) 负责数据结构定义与数据 ...

  4. sql server 备份与恢复系列三 简单恢复模式下的备份与还原

    一.概述 前面讲了备份的一些理论知识,这篇开始讲在简单恢复模式下的备份与还原.在简单模式下是不能做日志备份的,发生灾难后,数据库最后一次备份之后做的数据修改将是全部丢失的,所以在生产环境下,数据又很重 ...

  5. SQL 脚本整理 笔记

    1.视图 存储过程 触发器 批量加密(With Encryption),单个解密 在运行过程中自己找不到启用DAC 的地方,链接的时候需要在服务器名称前面添加ADMIN:,如本机是ADMIN:WP-P ...

  6. Unity3D脚本中文系列教程(三)

    http://dong2008hong.blog.163.com/blog/static/4696882720140302323886/ Unity3D脚本中文系列教程(二) 示,属性不被序列化或显示 ...

  7. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

    原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server ...

  8. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Jenkins系列之-—08 实现SQL脚本批量执行

    公司内部推广DevOps,所有目前在维护阶段和开发阶段项目全部配置上了自动发布.采用Jenkins+SVN+ANT,之后批量执行SQL语句的实现提上日程 一.环境 Linux环境 安装ANT工具,且下 ...

随机推荐

  1. Struts2学习第一天--Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写

    action的name要与访问路径对应.hello.action. 加到tomcat启动 访问:http://localhost:8080/struts2-1/demo1/demo1.jsp 改为su ...

  2. 获取oracle 库所有表名

    (mybatis多参)

  3. selenium定位元素提示‘元素不可见’问题解决方法

    最近在使用selenium的过程中发现有元素能够在页面中查找到,但是pycharm中运行时始终报错element not visible,于是使用如下方法成功解决问题. 1.driver.find_e ...

  4. P3994 高速公路 树形DP+斜率优化+二分

    $ \color{#0066ff}{ 题目描述 }$ C国拥有一张四通八达的高速公路网树,其中有n个城市,城市之间由一共n-1条高速公路连接.除了首都1号城市,每个城市都有一家本地的客运公司,可以发车 ...

  5. P2252 取石子游戏 威佐夫博弈

    $ \color{#0066ff}{ 题目描述 }$ 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆 ...

  6. 选择排序 思想 JAVA实现

    已知一个数组 9.29.95.47.79.37.18.56.96.22 使用选择排序是数组有序 选择排序同样是一个运行时间为O(N²)的排序算法. 算法思想:(以从小到大为例) 9.29.95.47. ...

  7. 关于VisualStudio性能分析数据中的独占样本数和非独占样本数的意义

    VisualStudio中自带有Profile工具进行性能性能分析,其中用得比较多的数据是函数调用时间,它主要有独占样本数和非独占样本数两个指标,关于这两个指标代表的意义,MSDN的解释比较文艺: 非 ...

  8. linux的目录和基本的操作命令

    目录相关操作:( ctrl+l   清空当前的屏幕中的命令  ) 一:目录说明: .   当前目录..   上一层目录-   前一个工作目录~   当前[用户]所在的家目录 蓝色的文件: 都是目录 白 ...

  9. 使用Swagger生成简单接口文档

    使用swagger通过简单的配置可以生成简单的接口文档: 依赖包: // Swagger2 compile 'io.springfox:springfox-swagger2:2.8.0' compil ...

  10. filezilla绑定编辑器

    编辑  - >设置 ->文件格式关联 ->输入需要关联的编辑器的路径