触发器

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. redis可视化辅助工具

    安装链接: http://docs.redisdesktop.com/en/latest/quick-start/ 图标

  2. ubuntu命令行安装tomcat8

    环境: 虚拟机VM14 Ubuntu16.04 java 1.8 步骤: 先更新 sudo apt-get update 然后安装: sudo apt-get install tomcat8 等一会 ...

  3. C# Winform下一个热插拔的MIS/MRP/ERP框架11(启航)

    初学时,有了想法却完全不知道该从何下指,此序列将抛砖引玉,与大家共同学习进步. 一个程序的初始,必然是启动. 我的要求: 1.应用程序保持单例: 2.从配置文件加载一些基础数据进行初始化: 3.显示软 ...

  4. const 迭代器和 const_iterator (vector/set/map)

    vector: 如同一般复合类型一样,vector 迭代器也可以声明成: const vector<int>::iterator it1 = v.begin(); vector<in ...

  5. query flot 直方图上显示对应的y值

    方法1:使用在图上加 相对定位的 div 提示对应的直方图数量. 具体实现:获取直方图上所有的点,得到y值和对应的坐标位置,插入相对div 主要js代码:plot 为对应的图对象 //初始化柱状图数据 ...

  6. Scanner类的用法

    Scanner类,一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器. 用于扫描输入文本的实用程序.位于java.util包中. 使用Scanner接收键盘输入的字符,步骤: 1.导入Sca ...

  7. get与post中文乱码问题

    Jsp默认的字符编码格式是iso-8859-1 因为post方法与get方法传递参数的方式不一样,所以有不同的解决方法. 一.post乱码解决方法: 1.设置请求和响应的编码方式 //设置请求的编码格 ...

  8. JS 为页面对象新增自定义方法

    有些时候html的一些控件是自动生成的,我们无法修改,但是我们能改改页面所调用的一些公用的JS. 这样的话我们可以自定义JS事件. function sel_OnClick() { //dosth.. ...

  9. windows xp 环境下 Oracle8i 双击安装文件无反应的解决办法

    今天调试一份比较老的程序,数据库用的是Oracle8i,在本地xp系统上搞了半天,双击安装文件就是没反应! 在网上整理了一下解决办法: 1.将ORACLE软件拷贝到硬盘. (比如我拷贝到:F:\Ora ...

  10. kotlin spring @value 注解

    spring boot和kotlin里静态类使用@Value注解配置解决方案前言spring boot里默认是不能给静态属性使用@Value赋值的.所以这里使用中间变量过渡绑定. 方案//applic ...