【2017-03-16】TSQL基本编程、存储过程、触发器
一、TSQL基本编程
1、定义变量 :declare @变量名 数据类型 变量名前面必须加"@"符号
declare @aaa int;
declare @bbb nvarchar(200);
2、赋值: set @变量名 = 值 select @变量名 = 值 -- 好用
select @bbb ='哈哈';
3、取值打印: select @变量名 print @变量名
select @bbb;
print @bbb;
select top 1 name from Student; --从Student表中name列第一行数据取出来
4、分支语句
if @aaa>@bbb
begin
语句。。。。
end
else
begin
....
end
5、循环语句:
注意循环四要素:初始条件,循环条件,循环体,状态改变
declare @a int;
select @a = 1; --初始条件
while @a<=10 --循环条件
begin
select @a; --循环体
select @a=@a+1; --状态改变
end
二、存储过程:将一堆代码放到存储过程中,可以一句话调用这些代码
相当于C#中的函数
1、创建一个存储过程 Jiafa
create proc Jiafa
@a int,
@b int
as
return @a+@b;
2、调用该存储过程
exec Jiafa 5,10
打印结果:
declare @ccc int; --定义一个变量
exec @ccc=Jiafa 5,10; --把加法的结果赋给变量ccc
select @ccc; --打印ccc
3、存储过程常用用法:
将查看表的代码放在存储过程中,在使用的时候只需调用存储过程exec SelectAll 就可
create proc SelectAll
as
select * from Student
select * from Score
select * from Course
select * from Teacher
exec SelectAll
三、触发器
一个特殊的存储过程,没办法直接调用它,而是通过增删改查的动作来触发它。
一个表的一个动作只能有一个触发器。
create trigger 哪个表的哪个动作 --创建一个触发器+ 名字
on 表名 --针对于哪一个表写的触发器
for 动作 --针对于哪一个动作触发之后的触发器
instead of 动作 --针对于哪一个动作执行替换
as
触发器内容
creat trigger users_delete
on users
for delete
as
select * from users
触发器常用用法:级联删除

要删除class表中的数据 因为class为主键表 直接删除删除不掉所以用触发器来实现。
在class表中遇到delete 时触发,先把外键表中对应的数据删除,再把主键表中的数据删除。
【2017-03-16】TSQL基本编程、存储过程、触发器的更多相关文章
- Wed Nov 01 13:03:16 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended.
报错:Wed Nov 01 13:03:16 CST 2017 WARN: Establishing SSL connection without server's identity verifica ...
- java编程如何实现2017-01-16 22:28:26.0这样的时间数据,转换成2017:01:16:22:28:26这样的时间数据
不多说,直接上干货! timereplace.java package zhouls.bigdata.DataFeatureSelection.util; /* * 这个程序,是用来做补充的 */ p ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
- 2017.1.16【初中部 】普及组模拟赛C组总结
2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...
- C# 得到sqlserver 数据库存储过程,触发器,视图,函数 的定义
经常从 生产环境 到测试环境, 需要重新弄一整套的数据库环境, 除了表结构以及表结构数据,可以用动软代码生成器 生成之外, 像 存储过程,触发器,等,好像没有批量操作的,意义哥哥农比较麻烦, 所以最近 ...
- 2017.9.16~17,热烈庆祝共创力罗老师《敏捷MINI体验式实战培训》在某大型企业成功举办!
2017.9.16~17日,深圳市共创力企业管理咨询有限公司为某上市企业提供了为期两天的内训服务.该次内训的主题为<敏捷MINI体验式实践培训>,为期两天.此次培训由共创力资深讲师Geor ...
- easyUI datebox 日期空间斜杠格式化。例如将日期空间中显示2017-03-13,改为2017/03/13
easyUI datebox 日期空间斜杠格式化 将日期空间中显示2017-03-13,改为2017/03/13 //日期控件斜杠格式化 function formatDate(date){ if( ...
- jetbrains idea/webstorm等(注册,激活,破解码,一起支持正版,最新可用)(2017.3.16更新)【转】
选择 License server (2017.3.16更新) http://idea.imsxm.com/ 详细请参考: http://www.cnblogs.com/ys-wuhan/p/584 ...
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
随机推荐
- nginx的配置服务器集群,负载均衡
在server{}前配置服务器ip和端口号 如: upstream local_tomcat { local_tomcat为访问路径,在下面配置服务器ip及端口号,也可以分配权重(weight==?) ...
- Ajax.BeginForm()知多少
在ASP.NET MVC中,Ajax.BeginForm扮演着异步提交的重要角色.其中就有五个重载方法,但是在实际应用中,你未必使用的得心应手,今天我们就从主要的参数来一探究竟. 一.actionNa ...
- KB奇遇记(4):困难重重的选型
在以往的工作经历中,虽然也会出现公司的一些规章制度,但我鲜少与其打交道,也极少听说.但是来KB这里,突然发现公司居然并没有给我配备电脑!!原因是制度上并没有写IT人员入职需要配备电脑,尔后通过特批流程 ...
- ArcGIS10.2直连PostgreSQL存在问题
现象: 将下载到的libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, ssleay32.dll文件拷贝到Desktop 安装目录的bin目录 ...
- 蓝桥网试题 java 基础练习 数列特征
----------------------------------- Collections.sort(list);是个好东西 但是要学会排列 然后你才能浪 -------------------- ...
- 一次开放接口从需求分析到发布sdk线上包
新年开场篇,欢迎来点赞:本篇和大家分享的是使用webapi做得接口服务验证框架,需求来源是我打算把上篇提到的图片验证码做成一种服务提供给大家,尽管我在上篇已经把代码打包开源了,但是如果有一种快速对接成 ...
- java_ 集合
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...
- 最新升级的火狐38.0.6识别ajax调用返回的""空值可能有异常。
自已在调用一段ajax开发中,返回的是空值 string result = string.Empty;return result; 但在页面进行$.ajax调用 时 输出alert(result);应 ...
- 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数
关于构造函数的一个违反直觉的行为 我会以重复标题开始:你不应该在构造或者析构的过程中调用虚函数,因为这些调用的结果会和你想的不一样.如果你同时是一个java或者c#程序员,那么请着重注意这个条款,因为 ...
- object c入门
无意间看到Object C编写的程序,感觉蛮有意思的,记载下来,慢慢品味,也许会有用得上的时候.吼吼~~ 大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到 Interfac ...