SQLserver的儲存過程

2022-09-15 10:00:18 字數 4641 閱讀 1278

儲存過程

【create

是建立儲存過程,

alter

是更改、改變儲存過程】

【在第一次寫儲存過程時用

create

,若修改儲存過程程式之後,則

alter

替換create

再執行】

【在資料庫中

begin  end

為大括號的意思】

·建立儲存過程的格式:

--(procedure可簡寫為proc)proc為程式、步驟的意思。後跟儲存過程名

create proc 儲存過程名

as**塊

go--exec為執行的意思。執行儲存過程

exec  儲存過程名 

---------修改儲存過程

alter proc hehe   ---alter更改、改變的意思

asselect 學生學號,語文分數 from fenshu

goexec hehe

-------------查詢多個表

create proc chaxun

asbegin

select * from fenshu

select * from jiaoshi

select * from xuesheng

endgo

exec chaxun

--------------帶引數的儲存過程

create proc chucunguocheng

@yican varchar(20),    @yican 含義為形參

@ercan varchar(20)

asbegin

print @yican+@ercan

endgo

exec chucunguocheng '你好','中國'

例題:-------輸入學號,判斷學生優秀、結業、不結業(三門課及格為優秀,兩門課及格為結業)

alter proc biye

@xuehao int   --建立輸入變數

asbegin

declare @y int

declare @s int

declare @w int

declare @zongshu int

select @y=count(*) from fenshu where 學生學號=@xuehao and 語文分數》=60

select @s=count(*) from fenshu where 學生學號=@xuehao and 數學分數》=60

select @w=count(*) from fenshu where 學生學號=@xuehao and 英語分數》=60

set @zongshu=@y+@s+@w

if @zongshu=3

print '優秀'

if @zongshu =2

print '結業'

if @zongshu=1

print'不結業'

if @zongshu=0

print'輸入錯誤'

endgo

exec biye 1

結果為:

--------綜合練習題

(儲存過程綜合訓練)

建立乙個貨物表:編號,貨物名稱,單位,**,庫存數量,備註。(10條資料)

之後,進貨,如果已有此貨,增加數量,否則,新增入資料庫表中。

出貨,如果有人要貨,判斷數量是否充足,充足減庫存,否則告知不足。

根據名字隨時刪除資料庫中的資料,有則刪除,無則告知。

------------建立資料庫及資料表,並插入資料----------

create database 筆記本

gocreate table bijiben

(編號 int,

名稱 nvarchar(20),

備註 varchar(20),

** int,

庫存 int,

單位 nvarchar(10)

)go                       --------(隨機排名)------

insert into bijiben values(1,'蘋果','macbook',12000,10,'美國')

insert into bijiben values(2,'巨集基','acer',3500,20,'中國台灣')

insert into bijiben values(3,'華碩','asus',3500,25,'中國')

insert into bijiben values(4,'戴爾','dell',4300,30,'美國')

insert into bijiben values(5,'神舟','hass',4000,20,'中國')

insert into bijiben values(6,'聯想','lenovo',4200,30,'中國')

insert into bijiben values(7,'惠普','ph',3600,20,'美國')

insert into bijiben values(8,'三星','samsung',3700,10,'日本')

insert into bijiben values(9,'索尼','sony',7000,10,'日本')

insert into bijiben values(10,'東芝','toshiba',3200,10,'日本')

select *from bijiben

----------------------進貨------------------------

create proc jinhuo --建立進貨儲存過程

@bianhao int,  --進貨編號

@bjbn nvarchar(20),--筆記本名

@beizhu nvarchar(20),--備註

@jiage int,--**

@jinhuo int,--進多少臺

@danwei nvarchar(20)--單位

asbegin

declare @ybjbn nvarchar(20),@ykc int  --@ykc為資料中的原有的庫存數

select @ybjbn=count(名稱) from bijiben where 名稱=@bjbn

if @ybjbn=0  --當資料庫中沒有輸入的資料時

begin

insert into bijiben values(@bianhao,@bjbn,@beizhu,@jiage,@jinhuo,@danwei)

print'新電腦新增成功!'

endelse if @ybjbn=1  --當資料庫中有輸入的資料時

begin

select @ykc=庫存 from bijiben where 名稱=@bjbn

set @ykc=@ykc+@jinhuo

update bijiben set 庫存=@ykc where 名稱=@bjbn

print'該電腦庫存新增成功!'

endend

goexec jinhuo 11,'戴爾','dell',4200,10,'美國'

----------------------出貨------------------------

create proc chuhuo  --建立出貨儲存過程

@name nvarchar(20), --要出貨的筆記本名稱

@shuliang int       --出貨的數量

asbegin

declare @ygeshu int,@hgeshu int --@ygeshu為資料庫原來的庫存,@hgeshu交易後剩餘的庫存

select @ygeshu=庫存 from bijiben where 名稱=@name

if @shuliang>@ygeshu  --當出貨的數量大於庫存的數量時

print'對不起,庫存不足~~'

else   

begin 

set @hgeshu=@ygeshu-@shuliang 

update bijiben set 庫存=@hgeshu where 名稱=@name --修改交易後庫存數

print'交易成功!'

endend

goexec chuhuo '蘋果',11

---------------------------刪除一款筆記本資料-------

create proc qingchu

@scbjbn nvarchar(20) --要刪除的筆記本的名稱

asbegin

declare @sgeshu int   --要查詢筆記本的個數

select @sgeshu=count(*) from bijiben where 名稱=@scbjbn

if @sgeshu=1

begin

delete from bijiben where 名稱=@scbjbn

print'該筆記本的資料刪除成功!'

endif @sgeshu=0

print'未找到該名稱的筆記本~~'

endexec qingchu '蘋果'

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...

SQL Server 儲存過程

儲存過程概念 儲存過程優點 儲存過程的介面 儲存過程的解析 編譯過程 儲存過程安全性 檢視儲存過程 加密 解密儲存過程 儲存過程概念 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 帶參儲存過程 來執行...