Sql Server使用存储过程

 1 存储过程基本语句①
connect to StudentTest;

select * from tbl_classinfo

--创建存储过程
create procedure proc_demo()
begin
 declare v_i int default 10;
 declare v_classname varchar(20);
 set v_classname='德语';
 insert into tbl_classinfo values('007',v_classname);
end@

--执行存储过程
call proc_demo

--删除存储过程
drop procedure proc_demo

 

2 存储过程基本语句②

connect to bookshop

select * from tbl_publisher

--创建存储过程
create procedure proc_publisher()
begin
 declare v_pubid num(10);
 declare v_name varchar(23);
 declare v_contact varchar(15);
 declare v_phone varchar(12);
 set v_pubid=100;
 set v_name='xy出版社';
 set v_contact='111';
 set v_phone='111';
 insert into tbl_publisher values(v_pubid,v_name,v_contact,v_phone);
end@

--执行存储过程
call proc_publisher()

--删除存储过程
drop procedure proc_publisher;

 

3 输入参数

connect to StudentTest;

select * from tbl_classinfo;

select * from tbl_result;

create table tbl_result
(
 result varchar(100)
)

--创建存储过程
create procedure pro_classinfo(in v_classno character(2), in v_classname varchar(10))
begin
 insert into tbl_classinfo values(v_classno,v_classname);
end@

create procedure pro_modifyByclassno(in v_classno character(2))
begin
 for classfor as select classname from tbl_classinfo where classno=v_classno
 do
  insert into tbl_result values(classfor.classname);
 end for;
end@

--执行存储过程
call pro_classinfo('10','体育')
call pro_modifyByclassno('10');

--删除存储过程
drop procedure pro_classinfo
drop procedure pro_modifyByclassno

 

4 输出参数

select * from tbl_result;

create table tbl_result
(
 result varchar(100)
)

create procedure proc_out(out v_classname varchar(10),in v_classno character(2))
begin
 for classfor as select classname from tbl_classinfo where classno=v_classno
 do
  set v_classname = classfor.classname;
 end for;
end@

用另一个存储过程使用输出参数
create procedure pro_test()
begin
 declare v_classname varchar(10);
 call proc_out(v_classname,'10');
 insert into tbl_result values(v_classname);
end@

call pro_test();

时间: 2024-11-05 14:46:11

Sql Server使用存储过程的相关文章

简单谈基于SQL SERVER 分页存储过程的演进

server|存储过程|分页 简单谈基于SQL SERVER 分页存储过程的演进 作者:郑佐日期:2006-9-30 针对数据库数据在UI界面上的分页是老生常谈的问题了,网上很容易找到各种"通用存储过程"代码,而且有些还定制查询条件,看上去使用很方便.笔者打算通过本文也来简单谈一下基于SQL SERVER 2000的分页存储过程,同时谈谈SQL SERVER 2005下分页存储过程的演进. 在进行基于UI显示的数据分页时,常见的数据提取方式主要有两种.第一种是从数据库提取所有数据然后在

SQL Server编写存储过程小工具(三)

server|存储过程 SQL Server编写存储过程小工具 功能:为给定表创建Update存储过程 语法: sp_GenUpdate <Table Name>,<Primary Key>,<Stored Procedure Name> 以northwind 数据库为例 sp_GenUpdate 'Employees','EmployeeID','UPD_Employees' 注释:如果您在Master系统数据库中创建该过程,那您就可以在您服务器上所有的数据库中使用该

SQL Server编写存储过程小工具(二)

server|存储过程 SQL Server编写存储过程小工具 以下是两个存储过程的源程序 /*=========================================================== 语法: sp_GenInsert <Table Name>,<Stored Procedure Name> 以northwind 数据库为例 sp_GenInsert 'Employees', 'INS_Employees' 注释:如果您在Master系统数据库中创建该

SQL Server 2005存储过程编写指导

    本文让我们谈谈关于这种编写存储过程的新方法的五个常见问题.它们值得你一读的-- 在SQL Server 2000中,只有一种方法编写存储过程:使用T-SQL 语句.学习以前版本的SQL Server中存储过程的编写是一门课程.但是SQL Server 2005让你使用.NET语言家族(主要是VB.NET和C#)来编写存储过程(以及函数.触发器和其他的一些东西)成为可能. 1. 我为什么要使用CLR模型来写存储过程? 主要是因为数据.SQL CLR在一些方面执行较快:其中,字符串处理要比T

SQL Server与存储过程的比较

本文从多个角度阐述了SQL Server与存储过程的比较. ①为什么要使用存储过程? 因为它比SQL语句执行快. ②存储过程是什么? 把一堆SQL语句罗在一起,还可以根据条件执行不通SQL语句. ③来一个最简单的存储过程: CREATE PROCEDURE dbo.testProcedure_AXASselect userID fromUSERS order by userid desc 注:dbo.testProcedure_AX是你创建的存储过程名,可以改为:AXzhz等,别跟关键字冲突就行

sqlserver-如何获取SQL SERVER 2008 存储过程参数默认值

问题描述 如何获取SQL SERVER 2008 存储过程参数默认值 比如我的存储过程创建语句如下: CREATE PROC [dbo].[SearchBillDetail] ( @OpBeginDate DATETIME , @OpEndDate DATETIME , @BillTypeID INT , @BillOperType INT , @SaleOperID INT = 1, @DrCompID INT = NULL ) AS SET NOCOUNT ON -- 后面省略 这是我需要通

在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?

在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalScore] @categoryKey int, @objectIds VARCHAR(MAX) AS BEGIN      SELECT c.Name,AVG(e.Score) Score FROM dbo.Sys_com_comment_main m      INNER JOIN dbo.sys

数据库 sql语言-SQL Server创建存储过程,计算每个同学的平均成绩并标记“优秀学生”

问题描述 SQL Server创建存储过程,计算每个同学的平均成绩并标记"优秀学生" 如题:请用命令行创建存储过程,计算每个同学的平均成绩,写入S_AVG表,平均成绩大于85的学生,Flag标记为"优秀学生",平均成绩低于60的的学生,Flag标记为"延迟毕业",其他学生Flag标记为"常规学生". 能查到的有关例子太少了,自学不成功,求大神解答-- 解决方案 分步做 1.计算每个同学的平均成绩,写入S_AVG表 insert

SQL Server 优化存储过程的七种方法

原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数.使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量. 2.使用确定的Schema 在使用表,存储过程,函数等等时,最好加上确定的Schema.这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索.而且搜索会导致编译锁定,最终影响性能

SQL Server中存储过程比直接运行SQL语句慢的原因

原文:SQL Server中存储过程比直接运行SQL语句慢的原因     在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1.       存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.       经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作.当对数据库进行复杂操作时(如对多个表进行 Upd