MSSQL_12 开发篇-存储过程

本文介绍了MSSQL_12中存储过程的开发,包括创建、修改和错误处理。存储过程可以减少数据传输时间和提高安全性。创建时应注意命名规则,修改时不会影响已有的权限。错误处理部分提到了RAISERROR和TRY…CATCH机制。
摘要由CSDN通过智能技术生成

目录

  • 存储过程
    • 创建
    • 修改
    • 错误处理
      1.RAISERROR
      2.TRY … CATCH


3.存储过程

在创建C/S或B/S1应用程序时,可通过两种方式与服务器交互数据。一是将数据检索程序存储在客户端,通过客户端向服务器发送SQL语句来返回处理结果;另一种是将多个SQL语句组成一个事务处理过程,存储在服务器中,客户端像执行一条SQL语句一样调用该过程。

存储过程是经过编译后存储在服务器上的,减少了执行所需的传输代宽和时间;安全机制,可以授权用户具有某个存储过程的权限。

  • 用户自定义存储过程

    • SQL存储过程
    • CLR(Common Language Runtime,公共语言运行时)存储过程
      是对Microsoft .NET Framework公共语言运行时方法的引用,可以接收和返加用户提供的参数。是一种托管代码,需要.NET Framework的支持。
  • 系统存储过程
    sp_开头。

注:下为SQL存储过程,CLR略。

3.1 创建

据内存不同,存储过程最大可以是128M。最多有2100个参数。

  • 命名:未指定架构默认dbo架构;如与系统过程相同,则始终执行系统过程。
  • 建议:1.避免使用sp_开头;2.使用显示架构(还能改善名称解析性能
  • 补充查找顺序:若是批处理或动态SQL中调用存储过程,会继续在调用该存储过程的用户的默认架构中寻找;若是其它存储过程调用,则在所用存储过程的myschma中寻找;若都找不到,最后到dbo架构中查找。
-- 不带参
SELECT * FROM dbo.voc
GO
CREATE PROC proc_voc
AS
	SELECT * FROM dbo.voc
GO
EXEC proc_voc  -- 执行

在这里插入图片描述

-- 带参
IF OBJECT_ID('dbo.proc_voc') IS NOT NULL
	DROP PROC dbo.proc_voc
GO
CREATE PROC dbo.proc_voc
	@item varchar(10)
AS
	SELECT * 
	FROM dbo.voc
	WHERE item = @item
GO
EXEC proc_voc 'Chair'

-- 参数指定默认值
IF OBJECT_ID('dbo.proc_voc') IS NOT NULL
	DROP PROC dbo.proc_voc
GO
CREATE PROC dbo.proc_voc
	@item varchar(10),
	
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值