SQL Server的存储过程怎么写?

SQL Server的存储过程怎么写?,第1张

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 创建存储过程:

一、基础语法:

create proc | procedure pro_name

[{@参数数据类型} [=默认值] [output],

{@参数数据类型} [=默认值] [output],

....

]

as

SQL_statements

二、常见创建存储过程实例

1、创建不带参数存储过程

create proc proc_get_student

as

select * from student

执行存储过程:

exec proc_get_student

2、 带参存储过程

create proc proc_find_stu(@startId int, @endId int)

as

select * from student where id between @startId and @endId

执行存储过程:

exec proc_find_stu 2, 4

3、 带通配符参数存储过程

create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%')

as

select * from student where name like @name and name like @nextName

执行存储过程:

exec proc_findStudentByName

exec proc_findStudentByName '%o%', 't%'

4、 带输出参数存储过程

create proc proc_getStudentRecord(

@id int, --默认输入参数

@name varchar(20) out, --输出参数

@age varchar(20) output--输入输出参数

)

as

select @name = name, @age = age from student where id = @id and sex = @age

执行存储过程:

declare @id int,

@name varchar(20),

@temp varchar(20)

set @id = 7

set @temp = 1

exec proc_getStudentRecord @id, @name out, @temp output

select @name, @temp

print @name + '#' + @temp

sqlserver里调用存储过程的具体 *** 作步骤如下:

1、打开SQL Server Managment管理工具,新建一个表。

2、然后在表中插入一些样例数据。

3、接下来在SQL Server Managment中右键单击可编程性,选择新建存储过程。

4、然后在SQL编写界面中编写SQL语句,注意这里的@name就是接收的输入参数。

5、编写好存储过程,执行一下,就会在可编程性下面找到创建的存储过程。

6、紧接着,会d出一个【执行过程】的界面,里面有存储过程的参数,在【值】这一列输入想要传入的参数值,比如10,然后点击【确定】按钮,就可以看到执行结果100了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6781717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存