`
- 浏览:
798897 次
- 性别:
- 来自:
成都
-
---------------------sqlserver-触发器 -------------
触发器中的临时表:
Inserted
存放进行insert和update 操作后的数据
Deleted
存放进行delete 和update操作前的数据
--创建触发器
Create trigger User_OnUpdate
On ST_User
for Update
As
declare @msg nvarchar(50)
--@msg记录修改情况
select @msg = N '姓名从“' + Deleted. Name + N '”修改为“' + Inserted. Name + '”' from Inserted,Deleted
--插入日志表
insert into [LOG](MSG) values (@msg)
--删除触发器
drop trigger User_OnUpdate
-----------------存储过程语法----------------------
--创建带output参数的存储过程
CREATE PROCEDURE PR_Sum
@a int ,
@b int ,
@ sum int output
AS
BEGIN
set @ sum =@a+@b
END
--创建Return返回值存储过程
CREATE PROCEDURE PR_Sum2
@a int ,
@b int
AS
BEGIN
Return @a+@b
END
--执行存储过程获取output型返回值
declare @mysum int
execute PR_Sum 1,2,@mysum output
print @mysum
--执行存储过程获取Return型返回值
declare @mysum2 int
execute @mysum2= PR_Sum2 1,2
print @mysum2---
-------------------自定义函数-----------------------
--函数的分类:
1)标量值函数
2)表值函数
a:内联表值函数
b:多语句表值函数
3)系统函数
--新建标量值函数
create function FUNC_Sum1
(
@a int ,
@b int
)
returns int
as
begin
return @a+@b
end
--新建内联表值函数
create function FUNC_UserTab_1
(
@myId int
)
returns table
as
return ( select * from ST_User where ID<@myId)
--新建多语句表值函数
create function FUNC_UserTab_2
(
@myId int
)
returns @t table
(
[ID] [ int ] NOT NULL ,
[Oid] [ int ] NOT NULL ,
[Login] [nvarchar](50) NOT NULL ,
[Rtx] [nvarchar](4) NOT NULL ,
[ Name ] [nvarchar](5) NOT NULL ,
[ Password ] [nvarchar]( max ) NULL ,
[State] [nvarchar](8) NOT NULL
)
as
begin
insert into @t select * from ST_User where ID<@myId
return
end
--调用表值函数
select * from dbo.FUNC_UserTab_1(15)
--调用标量值函数
declare @s int
set @s=dbo.FUNC_Sum1(100,50)
print @s
--删除标量值函数
drop function FUNC_Sum1
-------------------自定义函数与存储过程的区别--------------------
--自定义函数:
1. 可以返回表变量
2. 限制颇多,包括
不能使用output参数;
不能用临时表;
函数内部的操作不能影响到外部环境;
不能通过select返回结果集;
不能update,delete,数据库表;
3. 必须return 一个标量值或表变量
自定义函数一般用在复用度高,功能简单单一,争对性强的地方。
--存储过程
1. 不能返回表变量
2. 限制少,可以执行对数据库表的操作,可以返回数据集
3. 可以return一个标量值,也可以省略return
存储过程一般用在实现复杂的功能,数据操纵方面。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在SQL Server数据库管理系统中,存储过程和触发器是两种非常重要的数据库编程元素,它们对于数据库设计和数据管理具有深远的影响。下面将详细讲解这两个概念及其相关的知识点。 **SQL存储过程**: 1. **定义**:SQL...
在SQL Server中,触发器和存储过程是两个重要的数据库编程元素,它们对于数据管理和业务逻辑的实现至关重要。本文将深入探讨这两个概念以及如何在实际操作中使用它们。 首先,我们来了解一下触发器(Triggers)。...
在SQL Server数据库中,存储过程和触发器是两种重要的数据库对象,它们在数据管理与业务逻辑处理中扮演着关键角色。 存储过程是预编译的SQL语句集合,它可以包含一系列的数据操作,如查询、更新、插入和删除等。...
SQL触发器、存储过程和函数是数据库管理中的重要组成部分,它们极大地增强了数据库的功能性和灵活性。在本篇文章中,我们将深入探讨这些概念,并提供实用的示例来帮助理解它们的使用和重要性。 **SQL触发器...
- 解决SQLServer触发器滥用问题 - 诊断和修复T-SQL问题 - 批量编辑SQLServer存储过程 - SQLServer 2005中升级存储过程 6. 存储过程修改与变更:在对SQLServer存储过程进行修改和变更时,可能会遇到与现有数据库...
SQL的存储过程、触发器等建立视图存储过程触发器函数(自定义函数)索引 视图 视图是从一个或几个基本表(或视图)导出的表。不同的是,它是一虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据...
在SQL Server 2000中,数据库对象如存储过程、函数、视图和触发器等,有时会被加密以保护其源代码不被查看或修改。这种加密是通过使用SQL Server的内置加密机制来实现的,它使得普通用户无法直接读取到这些对象的...
本文主要介绍如何在SQL Server中导出和导入存储过程。 首先,导出存储过程的步骤如下: 1. 打开SQL Server Management Studio(简称SSMS),这是一个用于管理SQL Server数据库的强大工具。 2. 在对象资源管理器中...
函数分为内联表值函数、标量函数和多语句表值函数等类型,它们用于执行特定计算或操作并返回单一或多个值。与存储过程类似,函数也可以加密,以防止未授权访问其内部逻辑。 视图则是一个虚拟表,基于一个或多个基表...
存储过程是预编译的SQL语句集合,可以视为数据库中的可重用函数。它们提高了代码的复用性和性能,并且可以通过参数化来增强灵活性。在我们的场景中,我们可以创建一个存储过程来生成新的主键值。 例如,我们可以...
存储过程解密的原理是基于 SQL Server 的系统视图 sys.sysobjvalues,该视图存储了存储过程、函数、触发器和视图等对象的元数据信息。其中,imageval 列存储了对象的加密信息。通过查询 sys.sysobjvalues 视图,我们...
在SQL数据库管理中,触发器和存储过程是两个重要的概念,它们在数据处理和业务逻辑实现上发挥着关键作用。而“encryption”和“解密”则是与数据安全紧密相关的关键点,尤其是在处理敏感信息时。现在我们来深入探讨...
SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则
为了查看触发器的定义,可以使用`sp_helptext`系统存储过程,或者在SQL Server企业管理器中通过“所有任务” -> “管理触发器”来查看和管理触发器。要查看当前数据库的所有触发器,可以执行如下SQL语句: ```sql ...
SQL Server提供了多种日期和时间数据类型,如`DATE`、`TIME`、`DATETIME2`等,以及各种函数和运算符来处理日期和时间数据。 2. `SQL Server`和`sql数据库`标签表明这是一个关于SQL Server数据库管理系统的问题。SQL...
笔者找到的功能最强大、操作最简单、使用最可靠的数据库解密工具,用于解密的SQL Server2000、2005等版本的存储过程、函数、触发器和视图。 执行连接到数据库后,左边直接列出数据库清单以及每个数据库内的存储过程...
根据待解密存储过程的类型(存储过程、函数、视图或触发器),构造一段假的加密代码,该代码会被用来替换原有的加密存储过程。 ```sql IF @objtype = 'P' SET @fake_01 = 'ALTER PROCEDURE ' + @procedure + ' ...
存储过程,触发器,函数,很有用的哦,是培训资料里取出来的
在SQL Server 2000中,可以通过`WITH ENCRYPTION`选项来创建或修改存储过程、函数、视图和触发器,从而实现加密的效果。加密后的对象源代码是不可见的,这有助于保护敏感的业务逻辑。 #### 三、解密原理 本示例提供...
总结来说,存储过程和触发器是SQL Server中非常强大的工具,它们可以帮助开发者编写高效、安全且易于维护的应用程序。通过对这些技术的理解和合理应用,可以极大地提升数据库系统的性能和可靠性。