日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

好多人都说存储过程很难?认真看这篇文章就够了

發(fā)布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 好多人都说存储过程很难?认真看这篇文章就够了 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

何為存儲過程?

存儲過程是在數(shù)據(jù)庫管理系統(tǒng)中保存的、預先編譯的并能實現(xiàn)某種功能的sql程序,說直白點,java知道吧?和java的方法一樣。

每遇到一個新的知識點時,我們都會看看它的優(yōu)點,從而加深對它學習的欲望,存儲過程也不例外,那么存儲過程有什么優(yōu)點?

  • 執(zhí)行速度更快

  • 允許模塊化程序設計?

  • 提高系統(tǒng)安全性

  • 減少網(wǎng)絡流通量

看完優(yōu)點之后,我們再來看看存儲過程的分類有哪些,然后我們按照分類一個一個的寫(演示)。

  • 系統(tǒng)存儲過程

    • ????系統(tǒng)存儲過程的名稱一般以“sp_”開頭

    • ????由SQLServer創(chuàng)建、管理和使用

    • ????存放在Resource數(shù)據(jù)庫中

    • ????類似C#語言類庫中的方法

  • 擴展存儲過程

    • ????擴展存儲過程的名稱通常以“xp_”開頭

    • ????使用編輯語言(如C#)創(chuàng)建的外部存儲過程

    • ????以DLL形式單獨存在

  • 用戶自定義存儲過程

    • ????由用戶在自己的數(shù)據(jù)庫中創(chuàng)建的存儲過程

    • ????類似C#語言中用戶自定義的方法

系統(tǒng)存儲過程

(上面已經(jīng)解釋過了,現(xiàn)在直接動手操作)

下面我們演示一下常用的系統(tǒng)存儲過程:

1.列出所有的數(shù)據(jù)庫

exec?sp_databases

2.修改數(shù)據(jù)庫的名稱:

exec?sp_renamedb 'jobs','job'

3.當前數(shù)據(jù)庫的所有表(包括視圖、表)

exec?sp_tables

4.返回student表的列的信息

exec?sp_columns student

5.查看表student的信息

exec?sp_help student

6.查看表的約束(默認約束,唯一約束)

exec?sp_helpconstraint student

7.查看當前數(shù)據(jù)庫中的存儲過程

exec?sp_stored_procedures

擴展存儲過程

(主要就演示一個xp_cmdshell)

xp_cmdshell

  • 可以執(zhí)行dos命令下的而一些操作

  • ?以文本方式返回任何輸出

下面演示一下該擴展存儲過程,查看某個文件夾:(D://DB)

/*若xp_cmdshell座位服務器安全配置的一部分而被關閉,需要先啟用*/ exec sp_configure 'show advanced options',1???--顯示高級配置信息 go? exec sp_configure 'xp_cmdshell',1????--打開xp_shell選項 go? reconfigure --重新配置 go? --查看某個文件夾:(D://DB) exec xp_cmdshell 'dir D:\DB\'

自定義存儲過程

已知有兩表,Student學生表和Grade年級表,表中數(shù)據(jù)如下:(仔細看,這是鋪墊)

Student表

Grade表

1.無參的存儲過程(查詢青鳥一班的所有學生姓名);

創(chuàng)建存儲過程:

go create?proc job_GetSname as? select?sname from?student where?sgid = (select?gid from?grade where?gname = '青鳥一班') go

調(diào)用存儲過程:

exec?job_GetSname

運行結(jié)果:

2.帶參數(shù)的存儲過程(根據(jù)輸入的年級名稱查詢該年級所有的學生信息)

創(chuàng)建存儲過程:

go create?proc job_Login @gname varchar(50) as select?sname from?student where?sgid = (select?gid from?grade where?gname = @gname) go

調(diào)用存儲過程:

exec?job_Login '青鳥一班'

運行結(jié)果:

3.帶輸出參數(shù)的存儲過程(根據(jù)學生姓名返回年級名稱)

go create?proc job_GetGName @sname varchar(50), --輸入學生姓名 @gname varchar(50) output????--輸出年級名稱 as select?@gname = gname from?grade where?gid = (select?sgid from??student where?sname = @sname) go

調(diào)用存儲過程:

declare?@gname varchar(50) --聲明一個變了接收年級名稱 exec job_GetGName '李太白', @gname output? print '所在年級是:'+@gname

運行結(jié)果:

JavaScript實現(xiàn)四則運算

2020-06-12

sql server高級查詢,看這篇文章就夠了

2020-06-09

Linux基礎知識之【簡介與安裝】

2020-06-08

老師,我沒有學過事務……同學你過來,你看老師手里拿的是什么?

2020-06-11


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的好多人都说存储过程很难?认真看这篇文章就够了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。