create proc test ------創(chuàng)建存儲(chǔ)過程 test
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出月湖免費(fèi)做網(wǎng)站回饋大家。
@a int =‘’-----------創(chuàng)建變數(shù) 有的存儲(chǔ)過程不需要變數(shù),這個(gè)看個(gè)人所需要
as ---------------執(zhí)行以下語句
select * from table where a=@a -------------------後面寫自己需要的語句
go
--------exec test ‘1’----------執(zhí)行存儲(chǔ)過程
1、 創(chuàng)建語法
create?proc?|?procedure?pro_name
[{@參數(shù)數(shù)據(jù)類型}?[=默認(rèn)值]?[output],
{@參數(shù)數(shù)據(jù)類型}?[=默認(rèn)值]?[output],
....
]
as
SQL_statements
2、 創(chuàng)建不帶參數(shù)存儲(chǔ)過程
--創(chuàng)建存儲(chǔ)過程
if?(exists?(select?*?from?sys.objects?where?name?=?'proc_get_student'))
drop?proc?proc_get_student
go
create?proc?proc_get_student
as
select?*?from?student;
--調(diào)用、執(zhí)行存儲(chǔ)過程
exec?proc_get_student;
3、 修改存儲(chǔ)過程
--修改存儲(chǔ)過程
alter?proc?proc_get_student
as
select?*?from?student;
4、 帶參存儲(chǔ)過程
--帶參存儲(chǔ)過程
if?(object_id('proc_find_stu',?'P')?is?not?null)
drop?proc?proc_find_stu
go
create?proc?proc_find_stu(@startId?int,?@endId?int)
as
select?*?from?student?where?id?between?@startId?and?@endId
go
exec?proc_find_stu?2,?4;
5、 帶通配符參數(shù)存儲(chǔ)過程
--帶通配符參數(shù)存儲(chǔ)過程
if?(object_id('proc_findStudentByName',?'P')?is?not?null)
drop?proc?proc_findStudentByName
go
create?proc?proc_findStudentByName(@name?varchar(20)?=?'%j%',?@nextName?varchar(20)?=?'%')
as
select?*?from?student?where?name?like?@name?and?name?like?@nextName;
go
exec?proc_findStudentByName;exec?proc_findStudentByName?'%o%',?'t%';
擴(kuò)展資料:
SQL存儲(chǔ)過程優(yōu)點(diǎn):
1、重復(fù)使用。存儲(chǔ)過程可以重復(fù)使用,從而可以減少數(shù)據(jù)庫開發(fā)人員的工作量。
2、減少網(wǎng)絡(luò)流量。存儲(chǔ)過程位于服務(wù)器上,調(diào)用的時(shí)候只需要傳遞存儲(chǔ)過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。
3、安全性。參數(shù)化的存儲(chǔ)過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke權(quán)限應(yīng)用于存儲(chǔ)過程。
參考資料來源:百度百科—存儲(chǔ)過程
朋友,你無需考慮這些,這只是語言設(shè)計(jì)者在語法上的設(shè)定而已,作為使用者的我們只需掌握set的用法即可,如果你一定要詢問為何語言設(shè)計(jì)的那些專家們用set,那你不妨參考一下set在英語中的解釋,set即是設(shè)置的意思,這也符合使用它時(shí)的語境。
sqlserver中用set賦值,而在oracle中則可以看到“select sal into sal_p from emp”這的語句,你注意到了嗎?同樣是賦值,兩種語言分別采用了set和select,這或許可以證明你的猜想,set與select的淵源可見一斑。
祝你成功
sqlserver存儲(chǔ)過程的基本操作:
一、創(chuàng)建存儲(chǔ)過程
1、語法格式:
create proc | procedure pro_name
[{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
....
]
as
sql_statements以上是最基本語法,舉個(gè)簡單的例子:
create proc p_test
as
select retu = 1存儲(chǔ)過程返回一個(gè)結(jié)果集:1
2、執(zhí)行存儲(chǔ)過程
execute procedure_name '' --存儲(chǔ)過程如果有參數(shù),后面加參數(shù)格式為:@參數(shù)名=value,也可直接為參數(shù)值value例子調(diào)用結(jié)果:
3、刪除存儲(chǔ)過程
drop procedure procedure_name --在存儲(chǔ)過程中能調(diào)用另外一個(gè)存儲(chǔ)過程,而不能刪除另外一個(gè)存儲(chǔ)過程
q 定義存儲(chǔ)過程的語法
CREATE PROC[EDURE] 存儲(chǔ)過程名
@參數(shù)1 數(shù)據(jù)類型 = 默認(rèn)值,
…… ,
@參數(shù)n 數(shù)據(jù)類型 OUTPUT
AS
SQL語句
GO
q 和C語言的函數(shù)一樣,參數(shù)可選
q 參數(shù)分為輸入?yún)?shù)、輸出參數(shù)
q 輸入?yún)?shù)允許有默認(rèn)值
創(chuàng)建不帶參數(shù)的存儲(chǔ)過程
CREATE PROCEDURE proc_stu /*proc_stu為存儲(chǔ)過程的名稱*/
AS
DECLARE @writtenAvg float,@labAvg float /*筆試平均分和機(jī)試平均分變量 */
SELECT @writtenAvg=AVG(writtenExam),
@labAvg=AVG(labExam) FROM stuMarks
print '筆試平均分:'+convert(varchar(5),@writtenAvg)
print '機(jī)試平均分:'+convert(varchar(5),@labAvg)
IF (@writtenAvg70 AND @labAvg70)
print '本班考試成績:優(yōu)秀' /*顯示考試成績的等級(jí) */
ELSE
print '本班考試成績:較差'
print '--------------------------------------------------'
print ' 參加本次考試沒有通過的學(xué)員:'
SELECT stuName,stuInfo.stuNo,writtenExam,labExam /*顯示未通過的學(xué)員 */
FROM stuInfo INNER JOIN stuMarks ON
stuInfo.stuNo=stuMarks.stuNo
WHERE writtenExam60 OR labExam60
GO
調(diào)用存儲(chǔ)過程
q EXECUTE(執(zhí)行)語句用來調(diào)用存儲(chǔ)過程
q 調(diào)用的語法
EXEC 過程名 [參數(shù)]
創(chuàng)建帶參數(shù)的存儲(chǔ)過程
q 存儲(chǔ)過程的參數(shù)分兩種:
q 輸入?yún)?shù)
q 輸出參數(shù)
q 輸入?yún)?shù):
用于向存儲(chǔ)過程傳入值,類似C語言的按值傳遞;
q 輸出參數(shù):
用于在調(diào)用存儲(chǔ)過程后,
返回結(jié)果,類似C語言的
按引用傳遞;
第一步:點(diǎn)擊數(shù)據(jù)庫下的“可編程性”,選擇“存儲(chǔ)過程”,點(diǎn)擊鼠標(biāo)右鍵,選擇“新建存儲(chǔ)過程”
第二步:在create PROCEDURE 后 輸入存儲(chǔ)過程的名字,緊跟著的就是定義存儲(chǔ)過程的參數(shù),接下來就可以去編寫自己所需要組裝的存儲(chǔ)過程語句了
第三步: 編譯存儲(chǔ)過程,在工具欄上按下執(zhí)行按鈕,如果沒有錯(cuò)誤,就編寫成功了。
第四步:調(diào)用:在sqlserver的語句查詢框中,輸入exec 存儲(chǔ)過程名 參數(shù),執(zhí)行就可以了。
基本語法格式如下:中括號(hào)帶的是可選項(xiàng)
create proc | procedure pro_name
[{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
....
]
as
begin
SQL_statements
--業(yè)務(wù)處理
end