有无参数之存储过程

一、 创建带参数的存储过程
创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用唯一的名称进行定义。与T-SQL变量相同,参数名必须以@为前缀,并且遵从标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。

1.不带默认值的参数

 创建一个参数不带默认值的存储过程,在调用该存储过程时,必须对存储过程中的所有参数进行赋值,如果有一个参数没有赋值,则无法调用该存储过程。例如:

[sql]

use db_student

--创建存储过程

create procedure proc_group

@课程类别 varchar(20), --定义参数

@学分 int

as

select * from course

where 课程类别[email protected]课程类别 and 学分>@学分

执行不带参数的存储过程就是:

[sql]

use db_student

exec proc_group ‘歌曲‘,8

如果不按顺序赋值可以写成:

[sql]

use db_student

exec proc_group @学分=8,@课程类别=‘篮球课’

2.带默认值的参数

在SQL中我们可以对字段进行默认值的约束,在存储过程中也可以建立使用默认值的参数。只要在参数的定义之后加上等号,并在等号后面写出默认值即可。

[sql]

--创建存储过程

use db_student

create procedure proc_group

@课程类别 varchar(20)=‘体育课‘,

@学分 int=6

as

select * from course where 课程类别[email protected]课程类别 and 学分>@学分

执行参数带默认值的存储过程

[sql]

use db_student

exec proc_group @学分=8

3.带返回参数的存储过程

创建存储过程时,可以用output参数来创建一个带返回值的存储过程,例如:

[sql]

@a int output

如果创建带返回参数的存储过程proc_group,那么SQL语句如下:

[sql]

--创建带返回值的存储过程

create procedure proc_group

@课程类别 carchar(20),

@平均学分 int output --设置带返回值的参数

as

原文地址:https://www.cnblogs.com/knight-zhou/p/12066958.html

时间: 2024-11-09 02:12:55

有无参数之存储过程的相关文章

【Mybatis】MyBatis调用带有返回结果、output参数的存储过程上与ibatis的区别

用过mybatis的应该都知道它是ibatis被Google收购后重新命名的一个工程,因此也做了大量升级.本文就来介绍下两者在调用存储过程上的一点区别,ibatis有一个专门的标签<procedure>,在mybatis里面已经没有这标签了,而是通过一个参数statementType="CALLABLE"来区分. 存储过程: ALTER PROCEDURE [dbo].[Pro_Create_Number] @ChannelNo VARCHAR(10) ,--渠道号 @Nu

c#调用Mysql带参数的存储过程

1.首先创建一个带参数的存储过程 ①存储过程名称=proc_bookinfo  ②存储过程2个参数 一个in 一个out in参数名称=ispay out参数名称=unPaycount ③ 这个存储过程 根据传入的未支付字段名称 输出未支付的商品数量 DELIMITER $$ USE `bookshop`$$ DROP PROCEDURE IF EXISTS `proc_bookinfo`$$ CREATE DEFINER=``@`` PROCEDURE `proc_bookinfo`(IN i

创建有输出参数的存储过程并在c#中实现DataGridView分页功能

不足之处,欢迎指正! 创建有输出参数的存储过程 if exists(select * from sysobjects where name='usp_getPage1') drop procedure usp_getPage1 go create procedure usp_getPage1--存储过程名称 @count int output,--输出参数 @countIndex int=1,--参数带默认值 @countPage int=5--参数带默认值 as --一个sql语句.ROW_N

将list&lt;对象&gt;转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其他的方法,不过这个方法已经实现,就写一下了: 1.创建表. CREATE TABLE [dbo].[person]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Pwd] [nvarchar](50) NULL, [Age]

JdbcTemplate执行带输入参数和输出参数的存储过程

直接上代码: /** * 执行返回一个输出参数,若干输入参数的存储过程 * 方法第一个参数为存储过程名称,第二个参数为存放输入参数的数组(按顺序存放),方法返回值为存储过程输出参数 */ public String execProcedureWithOutParam(final String procName,final String[] inParams){ String returnVal=(String)getJdbcTemplate().execute(new CallableState

sybase带输出参数的存储过程实例

使用return返回 --create pro USE yfb go create proc cwqi_test_pro(  @newName varchar(20) out,  @oldName varchar(20) in  ) as begin   set @[email protected]   return 1 end --run pro DECLARE @newName varchar(20) DECLARE @oldName varchar(20) DECLARE @result 

Talend call SqlServer带表结构list参数的存储过程

目的:用Talend调用Sql Server带表结构list参数的存储过程 实现:因Talend目前组件好像没有实现这样的功能,又不想再写个组件,故使用tJavaRow来编码实现. 1.我们首先可以通过Maven来下载比较新的mssql-jdbc.jar,我是下载如下jar测试的! <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifa

shell脚本调用带参数的存储过程

主要有 #!/bin/bash source /etc/profile source ~/.bash_profile ################################################################## #功能描述:调用带有输入参数和输出参数的存储过程 #执行周期:日 # CRONTAB: * 1 * * * * ${prog_path}CALL_PRODEDURE.sh >> ${prog_path}CALL_PRODEDURE.log 2&a

在C#中怎么调用带参数的存储过程啊??

1)执行一个没有参数的存储过程的代码如下:SqlConnection conn=new SqlConnection(“connectionString”);SqlDataAdapter da = new SqlDataAdapter();da.selectCommand = new SqlCommand();da.selectCommand.Connection = conn;da.selectCommand.CommandText = "NameOfProcedure";da.sel