--存储过程
/*
1:什么是存储过程
类比c中的函数
处理管理业务和业务规则 (t-sql 程序块)
(ddl 变量 逻辑控制 )
是否有返回参数
*/
--建立存储过程 -相当于c中的定义函数
--create view 名称 as T-sql
--查处乐乐的个人信息(简单的实例)
use stu
go
create procedure pro_stuInfo
as
select * from stuInfo where stuName='乐乐'
--执行存储过程 --c中调用函数
exec pro_stuInfo
--自定义
--系统存储过程
exec sp_databases --得到所有数据库的信息
exec sp_helpdb 'stu' --指定数据库的信息
exec sp_renamedb 'bank','yinh' --修改数据库的名称
exec sp_columns 'stuInfo'
exec sp_password '新密码','旧密码','用户名'
exec sp_helptext '存储过程的名称'
--扩展的存储过程
--xp_cmdshell 默认是关闭
/*
1:视图
2: t-sql语句
*/
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'xp_cmdshell',1
go
reconfigure
exec xp_cmdshell 'ipconfig'
--使用xp_cmdshell
use master
go
exec xp_cmdshell 'mkdir E:\banks',no_output
drop database shuju
create database shuju
create table bankyh
(
id int
)
exec xp_cmdshell 'dir E:\banks'
--存储过程
--请创建存储过程,查看本次考试平均分以及未通过考试的学员名单
if exists(select * from sysObjects where name='pro_stuInfo' )
drop proc pro_stuInfo
go --必须是查询批次中的第一个语句
create proc pro_stuInfo
as
select avg(writtenExam) from score
select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo
inner join score on stuInfo.stuNo=score.stuNo where writtenExam<60 or labExam<60
--执行
exec pro_stuInfo
--带参数的存储过程
--输入参数
--输出参数
--每次笔试和机试的及格线可能随时变化(不再是分),
--这导致考试的评判结果也相应变化。
if exists(select * from sysObjects where name='pro_stuInfo_score' )
drop proc pro_stuInfo_score
go
create proc pro_stuInfo_score
@writtenpass int,
@labpass int
as
select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo
inner join score on stuInfo.stuNo=score.stuNo where writtenExam <@writtenpass or labExam<@labpass
--执行
exec pro_stuInfo_score 60,60 --带输入参数
--带默认值参数
if exists(select * from sysObjects where name='pro_stuInfo_score' )
drop proc pro_stuInfo_score
go
create proc pro_stuInfo_score
@writtenpass int=60,
@labpass int=60
as
select stuName,stuInfo.stuNo,writtenExam,labExam from stuInfo
inner join score on stuInfo.stuNo=score.stuNo where writtenExam <@writtenpass or labExam<@labpass
--执行
exec pro_stuInfo_score
exec pro_stuInfo_score @labpass=50 --对机试指定
exec pro_stuInfo_score 90 --对笔试成绩
exec pro_stuInfo_score @writtenpass=90 ,@labpass=50
--带输出参数
--笔试和机试的及格线,统计出不及格人数
if exists(select * from sysObjects where name='pro_stuInfo_score' )
drop proc pro_stuInfo_score
go
create proc pro_stuInfo_score
@ispass int output, --输出参数
@writtenpass int=60, --输入
@labpass int=60
as
select @ispass =count(*) from score where writtenExam <@writtenpass or labExam<@labpass
select * from score where writtenExam <90 or labExam<90
--执行
declare @sum int
exec pro_stuInfo_score @sum output,90,90
print @sum
--(学习时候的总结)
分享到:
相关推荐
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
### SQL存储过程发送HTTP请求知识点解析 在数据库管理和应用程序开发中,经常需要实现数据库与外部系统之间的交互。其中一种常见的需求就是从SQL Server中的存储过程发起HTTP请求来获取或发送数据。这种技术不仅...
### SQL存储过程教程知识点详述 #### 一、SQL存储过程概述 - **定义**: 存储过程(Stored Procedure)是一组预编译的SQL语句集合,它们被存储在数据库中,用户可以通过指定存储过程的名字及其参数来执行。 - **...
本文将重点介绍如何在SQL Server 2008环境中轻松编写T-SQL存储过程,并通过具体的示例来展示其实现方法。 #### 二、SQL Server Management Studio (SSMS) 在SQL Server 2008中,SQL Server Management Studio ...
总的来说,学习和熟练使用存储过程是提升SQL Server数据库管理能力的关键步骤,它们能够帮助我们更高效、安全地处理数据和实现复杂的业务逻辑。通过创建、调用存储过程,可以优化数据库性能,提高开发效率,同时确保...
在SQL数据库管理中,自动执行SQL语句和创建标准的SQL存储过程是两个重要的操作,它们对于数据库管理和数据处理有着深远的影响。以下是这两个主题的详细解释: 首先,自动执行SQL语句是指通过一定的机制,让预定义的...
### SQL存储过程IN参数的解决办法 #### 方法一:使用临时表进行参数处理 此方法主要利用了SQL Server中的临时表来实现对多个输入参数的处理。具体步骤如下: 1. **定义变量**:首先定义了一个`nvarchar(200)`类型...
以下将详细讲解如何在SQL存储过程中处理参数数组。 1. **使用Table-Valued Parameters (TVP)** TVP是SQL Server 2008引入的一种特性,它允许我们传递一个表格结构的数据作为参数。首先,我们需要定义一个用户定义...
很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术
SQL Server存储过程是数据库开发和管理中的重要工具,它们是一组预先编译的T-SQL语句,可以执行复杂的数据库操作。在这个“SQL Server 存储过程100例”中,你将深入理解存储过程的多样性和实用性,超过100个示例将...
.NET 利用三层架构调用 SQL 存储过程实现增删查改 在企业应用开发中,使用 .NET 框架和 SQL Server 数据库是非常常见的。为提高开发效率和系统的可维护性,使用三层架构来实现业务逻辑是非常必要的。在本文中,我们...
### SQL Server 存储过程基本语法知识点解析 #### 一、定义变量 在 SQL Server 中,我们可以使用 `DECLARE` 语句来定义变量,并通过 `SET` 或 `SELECT` 来给变量赋值。 ##### 1. 简单赋值 ```sql DECLARE @a int; ...
SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被编译并存储在数据库中,可以被多次调用,提高了代码的复用性和执行效率。本篇文章将深入探讨SQL存储过程的学习与实例,以帮助你更好地理解...
本文介绍一种简单且高效的SQL Server存储过程实现分页的方法,这种方法仅需提供SQL语句、每页的记录数以及当前页数即可快速完成分页操作。 #### SQL Server存储过程分页原理 在SQL Server中,通过存储过程实现分页...
SQL存储过程,简单来说,就是一种被存储在数据库中的程序代码。它由一系列SQL语句和可选的控制流语句组成,例如条件判断、循环等。当执行存储过程时,这些SQL语句和控制流语句将会被依次执行。 ### 存储过程的特点...
### 执行SQL Server 存储过程并返回DataSet 在软件开发过程中,经常需要与数据库进行交互,其中一种常见的场景就是通过调用存储过程来获取数据并处理这些数据。本篇文章将详细探讨如何在C#中执行SQL Server的存储...
这些例子展示了PL-SQL存储过程的强大功能,包括变量的声明和初始化、控制流程(如`WHILE`循环和`IF`条件)、游标的使用以及参数传递。在实际应用中,存储过程能够帮助开发者封装复杂的业务逻辑,提高代码的复用性和...
本资源主要关注“SQL存储过程的创建与调用”,这对于数据库开发人员来说是至关重要的技能。 1. **存储过程的创建** 创建存储过程通常使用`CREATE PROCEDURE`语句。例如,一个简单的存储过程可能用于计算两个数的和...
SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该过程需要参数)来调用执行。在SQL Server 2000中,存储过程扮演着重要的...
SQL存储过程和触发器是数据库管理系统中的重要组成部分,它们在数据处理和业务逻辑实现中扮演着关键角色。本文将深入探讨这两个概念,以及在使用它们时需要注意的关键点。 首先,让我们了解一下SQL存储过程。存储...