`

SqlServer触发器、存储过程和函数

阅读更多
---------------------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
   存储过程一般用在实现复杂的功能,数据操纵方面。
分享到:
评论

相关推荐

    SQL server存储过程习题,SQL触发器习题.rar

    在SQL Server数据库管理系统中,存储过程和触发器是两种非常重要的数据库编程元素,它们对于数据库设计和数据管理具有深远的影响。下面将详细讲解这两个概念及其相关的知识点。 **SQL存储过程**: 1. **定义**:SQL...

    SQL Server常用操作触发器、存储过程.rar

    在SQL Server中,触发器和存储过程是两个重要的数据库编程元素,它们对于数据管理和业务逻辑的实现至关重要。本文将深入探讨这两个概念以及如何在实际操作中使用它们。 首先,我们来了解一下触发器(Triggers)。...

    SQL Server数据库实验_存储过程与触发器设计.docx

    在SQL Server数据库中,存储过程和触发器是两种重要的数据库对象,它们在数据管理与业务逻辑处理中扮演着关键角色。 存储过程是预编译的SQL语句集合,它可以包含一系列的数据操作,如查询、更新、插入和删除等。...

    解密SQL触发器、存储过程、函数

    SQL触发器、存储过程和函数是数据库管理中的重要组成部分,它们极大地增强了数据库的功能性和灵活性。在本篇文章中,我们将深入探讨这些概念,并提供实用的示例来帮助理解它们的使用和重要性。 **SQL触发器...

    SqlServer存储过程及调试指南

    - 解决SQLServer触发器滥用问题 - 诊断和修复T-SQL问题 - 批量编辑SQLServer存储过程 - SQLServer 2005中升级存储过程 6. 存储过程修改与变更:在对SQLServer存储过程进行修改和变更时,可能会遇到与现有数据库...

    SQL Server创建存储过程、触发器、函数等(学习札记)

    SQL的存储过程、触发器等建立视图存储过程触发器函数(自定义函数)索引 视图  视图是从一个或几个基本表(或视图)导出的表。不同的是,它是一虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据...

    SQL储存过程等的解密,破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器

    在SQL Server 2000中,数据库对象如存储过程、函数、视图和触发器等,有时会被加密以保护其源代码不被查看或修改。这种加密是通过使用SQL Server的内置加密机制来实现的,它使得普通用户无法直接读取到这些对象的...

    Sql Server 存储过程的导出导入.doc

    本文主要介绍如何在SQL Server中导出和导入存储过程。 首先,导出存储过程的步骤如下: 1. 打开SQL Server Management Studio(简称SSMS),这是一个用于管理SQL Server数据库的强大工具。 2. 在对象资源管理器中...

    2024SQLServer解密存储过程、函数、视图、触发器工具

    函数分为内联表值函数、标量函数和多语句表值函数等类型,它们用于执行特定计算或操作并返回单一或多个值。与存储过程类似,函数也可以加密,以防止未授权访问其内部逻辑。 视图则是一个虚拟表,基于一个或多个基表...

    在SQLSERVER中通过存储过程和触发器创建主键生成器

    存储过程是预编译的SQL语句集合,可以视为数据库中的可重用函数。它们提高了代码的复用性和性能,并且可以通过参数化来增强灵活性。在我们的场景中,我们可以创建一个存储过程来生成新的主键值。 例如,我们可以...

    针对sqlserver 2008 存储过程通过With Encryption加密方式的解密

    存储过程解密的原理是基于 SQL Server 的系统视图 sys.sysobjvalues,该视图存储了存储过程、函数、触发器和视图等对象的元数据信息。其中,imageval 列存储了对象的加密信息。通过查询 sys.sysobjvalues 视图,我们...

    sql所有版本触发器 存储过程encryption 解密

    在SQL数据库管理中,触发器和存储过程是两个重要的概念,它们在数据处理和业务逻辑实现上发挥着关键作用。而“encryption”和“解密”则是与数据安全紧密相关的关键点,尤其是在处理敏感信息时。现在我们来深入探讨...

    SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则

    SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则

    sqlserver2000触发器

    为了查看触发器的定义,可以使用`sp_helptext`系统存储过程,或者在SQL Server企业管理器中通过“所有任务” -&gt; “管理触发器”来查看和管理触发器。要查看当前数据库的所有触发器,可以执行如下SQL语句: ```sql ...

    SQL Server 触发器 表的特定字段更新时,触发Update触发器

    SQL Server提供了多种日期和时间数据类型,如`DATE`、`TIME`、`DATETIME2`等,以及各种函数和运算符来处理日期和时间数据。 2. `SQL Server`和`sql数据库`标签表明这是一个关于SQL Server数据库管理系统的问题。SQL...

    最方便的sql server存储过程、函数解密工具

    笔者找到的功能最强大、操作最简单、使用最可靠的数据库解密工具,用于解密的SQL Server2000、2005等版本的存储过程、函数、触发器和视图。 执行连接到数据库后,左边直接列出数据库清单以及每个数据库内的存储过程...

    sqlserver 存储过程With Encryption加密的解密

    根据待解密存储过程的类型(存储过程、函数、视图或触发器),构造一段假的加密代码,该代码会被用来替换原有的加密存储过程。 ```sql IF @objtype = 'P' SET @fake_01 = 'ALTER PROCEDURE ' + @procedure + ' ...

    存储过程,触发器,函数

    存储过程,触发器,函数,很有用的哦,是培训资料里取出来的

    解密SQL存储过程,适用于SQLSERVER2000存储过程

    在SQL Server 2000中,可以通过`WITH ENCRYPTION`选项来创建或修改存储过程、函数、视图和触发器,从而实现加密的效果。加密后的对象源代码是不可见的,这有助于保护敏感的业务逻辑。 #### 三、解密原理 本示例提供...

    Sql Server 存储过程和触发器.pdf

    总结来说,存储过程和触发器是SQL Server中非常强大的工具,它们可以帮助开发者编写高效、安全且易于维护的应用程序。通过对这些技术的理解和合理应用,可以极大地提升数据库系统的性能和可靠性。

Global site tag (gtag.js) - Google Analytics