sqlserver数据库存储过程

存储过程的分类
(1)系统存储过程

系统存储过程的名称一般以“sp_”开头

由SQLServer创建、管理和使用

存放在Resource数据库中

类似java语言类库中的方法
(2)
扩展存储过程

扩展存储过程的名称通常以“xp_”开头

以DLL形式单独存在

(3)用户自定义存储过程

由用户在自己的数据库中创建的存储过程

类似java语言中用户自定义的方法

//调用存储过程语法:
EXECUTE 过程名 [参数]


EXEC 过程名 [参数]

//定义存储过程的语法:
CREATE PROC[EDURE] 存储过程名

@参数1 数据类型 = 默认值 OUTPUT,

… … ,

@参数n 数据类型 = 默认值 OUTPUT

AS

SQL语句

GO

示例1:
IF EXISTS (SELECT * FROM sysobjects
WHERE name = ‘usp_grade_subject‘ )

DROP PROCEDURE usp_grade_subject

GO

/*---创建存储过程----*/

CREATE PROCEDURE usp_grade_subject

AS

SELECT GradeName,SubjectName,ClassHour FROM Grade

INNER JOIN Subject
ON Grade.GradeId=Subject.GradeId

ORDER BY Subject.GradeId,SubjectNo

GO

/*---调用执行存储过程---*/

EXEC usp_grade_subject

示例2 带输入参数的存储过程:
CREATE PROCEDURE usp_unpass

@subName varchar(50),

@score int

AS

DECLARE @date datetime --最近考试时间

DECLARE @subjectNo int --课程编号

SELECT @subjectNo=SubjectNo FROM Subject
Where SubjectName = @subName

… …

SELECT StudentName,Student.StudentNo,StudentResult
FROM Student

INNER JOIN Result ON Student.StudentNo = Result.StudentNo

WHERE StudentResult < @score AND ExamDate = @date
AND [email protected]

GO

示例3 创建带参数默认值的存储过程:

CREATE PROCEDURE usp_unpass

@subName varchar(50),

@score int = 60

AS

… …

GO

调用带参数默认值的存储过程:
EXEC usp_unpass ‘C# OOP‘ --使用default代表默认值

示例4 创建带输出参数的存储过程:

CREATE PROCEDURE usp_query_num

@UnPassNum INT OUTPUT,

@TotalNum INT OUTPUT,

@SubjectName NCHAR(10),

@Pass INT = 60
--推荐将默认参数放在最后
AS

DECLARE @date datetime

DECLARE @subjectNo int

… …

SELECT @UnPassNum = COUNT(*) FROM Result
WHERE [email protected] AND [email protected]
AND StudentResult<@Pass

SELECT @TotalNum = COUNT(*) FROM Result
WHERE [email protected] AND [email protected]

GO

调用带输出参数的存储过程

DECLARE @UnPassNum int

DECLARE @TotalNum int

EXEC usp_query_num @UnPassNum OUTPUT, @TotalNum OUTPUT,‘Java Logic‘

--调用时必须带OUTPUT关键字 ,返回结果将分别存放在变量@unPassNum和@TotalNum中

原文地址:https://www.cnblogs.com/wangzhaofang/p/8298006.html

时间: 2024-10-09 06:27:04

sqlserver数据库存储过程的相关文章

读取SQLServer数据库存储过程列表及参数信息

得到数据库存储过程列表: select * from dbo.sysobjects where OBJECTPROPERTY(id, N'IsProcedure') = 1 order by name 得到某个存储过程的参数信息:(SQL方法) select * from syscolumns where ID in      (SELECT id FROM sysobjects as a     WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1     

openTSP连接sqlServer数据库&amp;jpa调用存储过程

openTSP框架下的模块都是连接mysql数据库,近期青汽有连接sqlServer数据库的需求,在调研后配置了sqlServer数据库,使用jpa调用存储过程,中间也踩了不少坑,总结一下,避免大家再掉进去. 1.首先配置sqlServer的依赖 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version

JAVA使用JDBC技术操作SqlServer数据库执行存储过程

Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带参数的新增用户存储过程: CREATE PROCEDURE [dbo].[p_Insert_User] @name nvarchar(50), @UserPwd nvarchar(50) AS BEGIN INSERT INTO tb_User VALUES(NEWID(),@name,@UserPwd)

查询sqlserver数据库视图、存储过程等包含特定的字符串

? 1 2 3 4 5 6 SELECT  A.name ,         B.definition FROM    SYS.objects A         INNER JOIN sys.sql_modules B ON A.object_id = B.object_id                                         AND ( CHARINDEX('包含字符',                                               

动态备份SQL-SERVER数据库——SQLDMO

转载:http://www.cnblogs.com/liulanglang/archive/2007/12/04/981812.html 上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过.经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享. 大家最常见的是使用sql命令来进行数据库备份, 最常用的sql语句如下: backup [dbname]   to   disk=[路径+文件名] r

Sqlserver数据库总结

由于公司项目需要这段时间一直在做有关于数据库方面的工作.趁这段时间有空,对数据库方面的知识进行一个梳理和归纳,以便以后需要时,查看起来方便. 使用的数据库主要有ORACLE10g和Sqlserver2008两种,对两种数据库进行分别的展示,内容涉及 数据库基础知识.数据库原理应用.sql语法的使用.函数.存储过程.游标.事务.异构数据的转换.亿级数据的优化等. 1.Sqlserver数据库基础知识 1.1Sqlserver数据库简介 1.2Sqlserver语句执行顺序 1.3Sqlserver

用asp.net还原与恢复sqlserver数据库

上次做了个项目,涉及到数据库的还原和恢复,到网上找了一下,是利用SQLDMO实现的,只要添加SQLDMO引用就好了,然后利用下边的类的方法就可以实现了.我把原作者的类扩充了一下,可以自动识别web.config里 的数据库连接字符串,可以通过变量设置还原恢复的信息.需要注意的时还原,还原的时候问题最大了,有别的用户使用数据库的时候无法还原,解决办法就是在MASTER数据库中添加一个存储过程:create proc killspid (@dbname varchar(20))asbegindecl

sqlserver数据库 提纲

sqlserver数据库一.体系结构文件--服务--界面 文件---.maf .ldf .ndf服务--MSSqlserver,别名(实例名)界面--宋庆龄serve如何windouws身份验证,如何从windows身份严恒变为sqlserver验证二. 创建建库.改库.删除 create database alter database drop database建表.改表.删表 create table alter table drop table 1 库:文件位置.初始大小.增长方式.次数据

SQLServer数据库查询优化建议

虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决. 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源