定义存储过程sql,存储过程查询语句

seosqwseo3个月前 (08-20)测评日记41

一、创建存储过程sql语句

1)过程名

存储过程的名称,默认在当前数据库中创建。若需要在特定数据库中创建存储过程,则要在名称前面加上数据库的名称,即db_name.sp_name。

需要注意的是,名称应当尽量避免选取与MySQL内置函数相同的名称,否则会发生错误。

2)过程参数

存储过程的参数列表。其中,为参数名,为参数的类型(可以是任何有效的MySQL数据类型)。当有多个参数时,参数列表中彼此间用逗号分隔。存储过程可以没有参数(此时存储过程的名称后仍需加上一对括号),也可以有1个或多个参数。

MySQL存储过程支持三种类型的参数,即输入参数、输出参数和输入/输出参数,分别用IN、OUT和INOUT三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个*作结果的情形,而输入/输出参数既可以充当输入参数也可以充当输出参数。

二、SQL Server的存储过程怎么写

SQL server中如何存储:

首先准备数据,测试存储过程

use ssqadm;

创建测试books表

create table books_test( book_id int identity(1,1) primary key,

book_name varchar(20),book_price float,book_auth varchar(10));

插入测试数据

insert into books_test(book_name,book_price,book_auth)values

('论语',25.6,'孔子'),

('天龙八部',25.6,'金庸'),

('雪山飞狐',32.7,'金庸'),

('平凡的世界',35.8,'路遥'),

('史记',54.8,'司马迁');

select* from books_test;*/

创建无参存储过程

if(exists(select* from sys.objects where name='getAllBooks'))

drop proc getAllBooks

go

create procedure getAllBooks

as

begin

select* from books_test;

调用,执行存储过程

exec getAllBooks;

end

go

修改存储过程

alter procedure getallbooks

as

select book_name from books_test;

修改存储过程的名称

sp_rename getallbooks,proc_get_allbooks;

go

exec proc_get_allbooks;

go

创建带参数的存储过程

use ssqadm

go

if(exists(select* from sys.objects where name='searchbooks'))

drop proc searchbooks

exec searchbooks

执行存储searchbooks得到如下结果:

go

create procedure searchbooks(@bookid int)--括号里面是

as

begin

declare@book_id int;定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。

set@book_id=@bookid;

select* from books_test where book_id=@book_id;

end;

go

-- exec searchbooks

执行存储searchbooks得到如下结果:

创建带两个参数的存储过程

use ssqadm

go

if(exists(select* from sys.objects where name='book_test2'))

drop proc book_test2

exec book_test2

执行存储book_test2得到如下结果:

go

create procedure book_test2

(@bookid int,@bookname varchar(20))括号里面是

as

begin

declare@book_id int;

定义一个标量变量,只是保证存储过程的完整性,在本存储是多此一举的。

declare@book_name varchar(20);

set@book_id=@bookid;

set@book_name=@bookname;

select* from books_test where book_id=

@book_id and book_name=@book_name;

end;

go

exec book_test2

扩展资料:

SQL Server中查询存储命令子句:

USE [SSQADM]

Use是跳转到哪个数据库,对这个数据库进行*作。

GO

GO向 SQL Server实用工具发出一批 Transact-SQL语句结束的信号,相当于提交上面的SQL语句。

GO是把t-sql语句分批次执行

(一步成功了才会执行下一步,即一步一个GO)

/****** Object: StoredProcedure [dbo].[PROC_four_five_hr]

Script Date: 07/30/2018 13:44:55******/

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON

三、sql***存储过程查询语句

use MYTextDB----------使用MYTextDB数据库

CREATE PROCEDURE dbo.getUserList------------创建存储过程

as

set nocount on

begin-------------开始

select* from dbo.tbl_User-------------------定义SQL语句

end

go

EXEC dbo.getUserList---------------执行存储过程

在.NET的代码中调用:

'**通过Command对象调用存储过程**

DIM MyComm,MyRst

Set MyComm= Server.CreateObject("ADODB.Command")

MyComm.ActiveConnection= MyConStr'MyConStr是数据库连接字串

MyComm.CommandText="getUserList"'指定存储过程名

MyComm.CommandType= 4'表明这是一个存储过程

MyComm.Prepared= true'要求将SQL命令先行编译

Set MyRst= MyComm.Execute

Set MyComm= Nothing

存储过程取得的记录集赋给MyRst,接下来,可以对MyRst进行*作。

在以上代码中,CommandType属性表明请求的类型,取值及说明如下:

-1表明CommandText参数的类型无法确定

1表明CommandText是一般的命令类型

2表明CommandText参数是一个存在的表名称

4表明CommandText参数是一个存储过程的名称

还可以通过Connection对象或Recordset对象调用存储过程,方法分别如下:

'**通过Connection对象调用存储过程**

DIM MyConn,MyRst

Set MyConn= Server.CreateObject("ADODB.Connection")

MyConn.open MyConStr'MyConStr是数据库连接字串

Set MyRst= MyConn.Execute("getUserList",0,4)'后一个参断含义同CommandType

Set MyConn= Nothing

'**通过Recordset对象调用存储过程**

DIM MyRst

Set MyRst= Server.CreateObject("ADODB.Recordset")

MyRst.open"getUserList",MyConStr,0,1,4

'MyConStr是数据库连接字串,后一个参断含义与CommandType相同

四、sql怎样新建存储过程

一:创建没有参数的存储过程:

CREATE PROCEDURE select_all

AS

BEGIN

SELECT* from T_login1

END

GO

二:创建带参数的存储过程:

CREATE PROCEDURE select_name

@id uniqueidentifier

AS

BEGIN

SELECT* from T_login1 where PSN0001A=@id

END

GO

扩展资料:

创建存储过程的注意事项:

1、保持事务简短,事务越短,越不可能造成阻塞。

2、在事务中尽量避免使用循环while和游标,以及避免采用访问大量行的语句。

3、在启动事务前完成所有的计算和查询等*作,避免同一事务中交错读取和更新。可以使用表变量预先存储数据。即存储过程中查询与更新使用两个事务实现。

4、超时会让事务不执行回滚,超时后如果客户端关闭连接sqlserver自动回滚事务。如果不关闭,将造成数据丢失,而其他事务将在这个未关闭的连接上执行,造成资源锁定,甚至服务器停止响应。

相关文章

小米(MI)小米电视55英寸图文测评

小米(MI)小米电视55英寸图文测评

很多小伙伴在关注小米(MI)小米电视55英寸怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

创维电视55英寸55A33使用感受分享

创维电视55英寸55A33使用感受分享

很多小伙伴在关注创维电视55英寸55A33怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

佳能(Canon)EOS6D好不好

佳能(Canon)EOS6D好不好

很多小伙伴在关注佳能(Canon)EOS6D怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

索爱(soaiy)MC39无线k歌手机麦克风话筒歌唱录音主播声卡套装唱歌神器儿童音响一体无线蓝牙家庭ktv怎么样?质量测评好不好用?

索爱(soaiy)MC39无线k歌手机麦克风话筒歌唱录音主播声卡套装唱歌神器儿童音响一体无线蓝牙家庭ktv怎么样?质量测评好不好用?

很多小伙伴在关注索爱(soaiy)MC39无线k歌手机麦克风话筒歌唱录音主播声卡套装唱歌神器儿童音响一体无线蓝牙家庭ktv怎么样?质量好不好?使用测评如何?本文综合已购用户...

先科(SAST)V30红收音机老人老年人充电插卡迷你小音箱便携式半导体随身听fm调频广播音响音乐播放器使用心得反馈

先科(SAST)V30红收音机老人老年人充电插卡迷你小音箱便携式半导体随身听fm调频广播音响音乐播放器使用心得反馈

很多小伙伴在关注先科(SAST)V30红收音机老人老年人充电插卡迷你小音箱便携式半导体随身听fm调频广播音响音乐播放器怎么样?质量好不好?使用测评如何?本文综合已购用户的客...

超霸(GP)7号电池10粒七号碳性干电池适用于低耗电玩具/耳温枪/血氧仪/血压计/血糖仪等7号/AAA/R03商超同款好用吗

超霸(GP)7号电池10粒七号碳性干电池适用于低耗电玩具/耳温枪/血氧仪/血压计/血糖仪等7号/AAA/R03商超同款好用吗

很多小伙伴在关注超霸(GP)7号电池10粒七号碳性干电池适用于低耗电玩具/耳温枪/血氧仪/血压计/血糖仪等7号/AAA/R03商超同款怎么样?质量好不好?使用测评如何?本文...