传奇脱机触发器变量_传奇脱机打元宝脚本_内挂传奇脱机挂

时间:2021-04-26 21:00来源:300ren网络整理 作者: 300ren 点击:

此博客主要介绍触发器和存储过程的应用程序,示例,优缺点以及优缺点,最后通过一般分析。总结谁是更好的。

触发

定义

触发器是一种用于强制执行业务规则和数据完整性的机制。当指定表中的数据发生更改时,它会自动生效,以响应INSERT,UPDATE或DELETE语句。这也是它最基本的功能!

我们最常使用DML触发器。当数据库中发生DML事件时启用触发器时,它将更改表或视图中数据的插入,更新和删除语句。

示例

下面,让我们使用示例来展示触发器的详细编写和用法。

此示例是在为卡号充值时。在将数据插入充值表的同时,还必须更新学生表中的剩余金额。

-- =============================================
-- Author:		<郭贤达>
-- Create date: <2015.6.7>
-- Description:	<充值成功后,更改学生表里的剩余金额>
-- =============================================
--因为改动过该触发器。所以,create会自己主动变为alter
ALTER TRIGGER [dbo].[TR_UpdateBalance] --触发器名称
   ON  [dbo].[T_Recharge] --创建位置
   after insert --再插入数据之后
AS 
	--定义变量
	declare @InRows int,
			@CardNO varchar(10),
			@Recharge numeric(18,1)
	--通过查询给变量赋值
	select @Recharge=Recharge from inserted --inserted表示一个虚拟表来存放我们刚插入的数据
	select @CardNO=CardNO from inserted
	--查询该卡号的充值记录个数
    select @InRows =count(*) from T_Recharge  where CardNO =@CardNO 
	--假设该卡号充值记录大于1,说明不是新注冊用户,运行更新
	if @InRows>1
BEGIN
	SET NOCOUNT ON;
	--更改剩余金额
	update T_Student set Cash=convert(numeric,Cash)+@Recharge where CardNO=@CardNO 
END

? ??

优势

当然,由于使用触发器有很多优点,因此可以给我们带来方便。我将在下面列出其优势:

高效

触发器的开销非常低。执行触发器所花费的时间主要花费在引用存储在内存或磁盘上的其他表上。

级联更改

可以实现多个表的级联更改。

当需要在表中添加,删除或修改数据时,关联表中的相应数据也将被主动添加,删除和修改,以确保数据的一致性。

简单方便

使用触发器可以减少编写大量代码,并以事件方式进行处理。当数据更改时,主要动作由我们自己处理,因此我们可以在表上进行操作

更容易。

存储过程

定义

存储过程是一组用于完成特定功能的SQL语句。用户指定存储过程的名称并给出参数(假设存储过程具有参数

number)运行它。存储过程是数据库中的重要对象。无论是什么设计良好的数据库应用程序都应使用存储过程。

我们还可以将其理解为一组书面的SQL语句,就像函数方法一样,都是书面的和密封的。需要时直接调用。

示例

-- =============================================
-- Author:		<郭贤达>
-- Create date: <2015-06-10 15:08:13>
-- Description:	<从学生表中查询卡号,给退卡表加入数据,然后删除学生表,充值表和上机表中的数据>
-- =============================================
ALTER PROCEDURE [dbo].[PROC_ExitCard]
	-- 定义变量
	@CardNO VARCHAR(10),
	@UserID varchar(10),
	@Name varchar(10),
	@ReturnCash varchar(10),
	@ExitCardDate varchar(20),
	@ExitCardTime varchar(20),
	@IsCheckOut varchar(20)
AS
BEGIN
	SET NOCOUNT ON;
	--给学生表加入数据
	insert into T_ExitCard(CardNO,UserID,Name,ReturnCash,ExitCardDate,ExitCardTime,IsCheckOut)values(@CardNO,@UserID,@Name,@ReturnCash,@ExitCardDate,@ExitCardTime,@IsCheckOut)
	--删除学生表、充值表、上机表数据
	delete T_Recharge where CardNO=@CardNO
	delete T_Line where CardNO=@CardNO
	delete T_Student where CardNO=@CardNO
END

(责任编辑:admin)
传奇sf 网站地图

★★★★★

〞〞〞流〞〞〞 〞〞〞属〝〝〝 今日20:30 〞〞〞〞 ★★★★★★★★★★★★★★★★★★- 推荐 ★★★★★ ★★★★★私服
〞〞〞流〞〞〞 〞〞〞属〝〝〝 今日20:30 〞〞〞〞 ★★★★★★★★★★★★★★★★★★- 推荐 ★★★★★ ★★★★★私服