国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQLserver的存儲過程

2024-07-21 02:48:38
字體:
來源:轉載
供稿:網友
SQLserver的存儲過程

存儲過程

【Create是創建存儲過程,alter是更改、改變存儲過程】

【在第一次寫存儲過程時用create,若修改存儲過程程序之后,則alter替換create再執行】

【在數據庫中begin end為大括號的意思】

·創建存儲過程的格式:

--(PRocedure可簡寫為proc)proc為程序、步驟的意思。后跟存儲過程名

create proc 存儲過程名

as

代碼塊

Go

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

Exec 存儲過程名

---------修改存儲過程alter proc hehe ---alter更改、改變的意思asselect 學生學號,語文分數 from fenshugoexec hehe

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

create proc chaxun

as

begin

select * from fenshu

select * from jiaoshi

select * from xuesheng

end

go

exec chaxun

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

create proc chucunguocheng

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

@ercan varchar(20)

as

begin

print @yican+@ercan

end

go

exec chucunguocheng '你好','中國'

例題:

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

alter proc biye

@xuehao int --創建輸入變量

as

begin

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'輸入錯誤'

end

go

exec biye 1

結果為:

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

(存儲過程綜合訓練)

創建一個貨物表:編號,貨物名稱,單位,價格,庫存數量,備注。(10條數據)

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

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

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

------------創建數據庫及數據表,并插入數據----------

create database 筆記本

go

create 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)--單位

as

begin

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'新電腦添加成功!'

end

else if @ybjbn=1 --當數據庫中有輸入的數據時

begin

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

set @ykc=@ykc+@jinhuo

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

print'該電腦庫存添加成功!'

end

end

go

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

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

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

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

@shuliang int --出貨的數量

as

begin

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'交易成功!'

end

end

go

exec chuhuo '蘋果',11

---------------------------刪除一款筆記本數據-------

create proc qingchu

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

as

begin

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

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

if @sgeshu=1

begin

delete from bijiben where 名稱=@scbjbn

print'該筆記本的數據刪除成功!'

end

if @sgeshu=0

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

end

exec qingchu '蘋果'


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商丘市| 金华市| 普格县| 剑河县| 渝中区| 同仁县| 玉树县| 沂源县| 连平县| 巴南区| 汶川县| 常宁市| 凭祥市| 宜昌市| 奉化市| 柳河县| 兴和县| 烟台市| 永顺县| 铁岭市| 都江堰市| 右玉县| 延寿县| 咸阳市| 金寨县| 孟连| 天台县| 钦州市| 兴义市| 铜川市| 凤庆县| 玉山县| 桦川县| 东港市| 合阳县| 永春县| 德安县| 罗源县| 灯塔市| 额尔古纳市| 沁源县|