百度高级检索入口,网站快照优化公司,汕头汽车网站建设,wordpress remove_query_arg局部变量局部变量必须以 开头#xff0c;而且必须先用DECLARE 命令说明后才可使用。使用SELECT 或SET 命令来设定变量的值。说明形式#xff1a;DECLARE 变量名 变量类型 [ 变量名 变量类型]SELECT 局部变量 变量值SET 局部变量 变量值例#xff1a;declare name varchar(2…局部变量 局部变量必须以 开头而且必须先用DECLARE 命令说明后才可使用。 使用SELECT 或SET 命令来设定变量的值。 说明形式 DECLARE 变量名 变量类型 [ 变量名 变量类型] SELECT 局部变量 变量值 SET 局部变量 变量值 例 declare name varchar(20) --声明变量 set name 奥迪% --为变量赋值 declare avg decimal(18,2) set avg(select AVG(Price) from Car) print 所有汽车的平均价格是cast(avg as varchar(20)) IF……ELSE…… IF 条件表达式 命令行或程序块 [ELSE IF [条件表达式] 命令行或程序块] BEGIN……END…… 相当于C#中的大括号{} BEGIN 命令行或程序块 END BEGIN…END 用来设定一个程序块,将在BEGIN…END 内的所有程序视为一个单元执行。BEGIN…END 经常在条件语句如IF…ELSE 中使用。 declare find varchar(20) --声明变量 set find宝马 --变量赋值 if(find宝马) --判断 begin print 宝马汽车 --显示结果如下第二图 select * from Car where Name like %(find)% end else begin print 其他 select * from Car end WAITFOR WAITFOR 命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。 其中时间必须为DATETIME 类型的数据 WAITFOR {DELAY ‘时间’ | TIME ‘时间’| ERROREXIT | PROCESSEXIT | MIRROREXIT} DELAY 用来设定等待的时间最多可达24 小时 TIME 用来设定等待结束的时间点 ERROREXIT 直到处理非正常中断 PROCESSEXIT 直到处理正常或非正常中断 MIRROREXIT 直到镜像设备失败 例 等待1 小时2 分零3 秒后才执行SELECT 语句 waitfor delay ’01:02:03’ select * from employee 等到晚上11 点零8 分后才执行SELECT 语句 waitfor time ’23:08:00’ select * from employee 创建存储过程 CREATE PROC[EDURE] procedure_name [ ; number ] --procedure可简写为proc [ { parameter data_type } [ VARYING ] [ default ] [ OUTPUT ] ] [ ,...n ] --定义形参 [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 例 create procedure UP_Fruit_Buy --为方便查看创建存储过程名写为用户_表_对表的操作 username varchar(50), --定义形参 fruitname varchar(50), buycount int 0 as begin …… end 当涉及到修改数据时用begin tran …… rollback便于操作失误时恢复数据 触发器 触发器是一种特殊的存储过程。 触发器主要是通过事件进行触发而被执行的而存储过程可以通过存储过程名字而被直接调用 触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性另外还有强化约束和级联运行的功能。 inserted,deleted临时表 这两个表是由系统管理的存储在内存中不是存储在数据库中因此不允许用户直接对其修改是只读的。 这两个表的结构总是与被该触发器作用的表有相同的表结构。 这两个表是动态驻留在内存中的当触发器工作完成这两个表也被删除。 这两个表主要保存因用户操作而被影响到的原数据值或新数据值。 更新操作包括两个部分在deleted中存放了旧值然后在inserted中存放新值。 插入操作在inserted中存放新值。 删除操作在deleted中存放旧值。 种类after触发器、instead of触发器 两种触发器的区别after触发器是触发条件执行完以后才执行触发器instead of触发器是不再执行触发条件直接执行触发器。 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] {{ { FOR | AFTER | INSTEAD OF } { [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ][ NOT FOR REPLICATION ] AS sql_statement [ ...n ] } 例 create trigger TR_Student_Delete on student --创建对于表student的触发器 for delete --触发条件 as …… --执行过程 go 转载于:https://www.cnblogs.com/phantom-k/p/3967411.html