可以在哪些網(wǎng)站做翻譯兼職建立企業(yè)網(wǎng)站步驟
一:存儲(chǔ)過(guò)程概念
預(yù)先存儲(chǔ)好的sql程序,通過(guò)名稱和參數(shù)進(jìn)行執(zhí)行,供應(yīng)程序去調(diào)用,也可以有返回結(jié)果,存儲(chǔ)過(guò)程可以包含sql語(yǔ)句
可以包含流程控制、邏輯語(yǔ)句等。
二:存儲(chǔ)過(guò)程的優(yōu)點(diǎn)
執(zhí)行速度更快
允許模塊化程序設(shè)計(jì)
提高系統(tǒng)安全性
減少網(wǎng)絡(luò)流通量
三:存儲(chǔ)過(guò)程的分類
1 系統(tǒng)提供的存儲(chǔ)過(guò)程:名稱一般都是以sp_開頭,由SQLServer創(chuàng)建、管理和使用,存放在master數(shù)據(jù)庫(kù)中。
2 擴(kuò)展存儲(chǔ)過(guò)程:名稱一般都是以xp_開頭,使用編程語(yǔ)言C#創(chuàng)建外部的存儲(chǔ)過(guò)程,以DLL擴(kuò)展集的形式存在
3 自定義存儲(chǔ)過(guò)程:用戶在自己的數(shù)據(jù)庫(kù)中創(chuàng)建的存儲(chǔ)過(guò)程
?四:常用系統(tǒng)存儲(chǔ)過(guò)程:
1 列出有關(guān)指定數(shù)據(jù)庫(kù)或者所有的數(shù)據(jù)庫(kù)信息?
exec sp_helpdb SMDB
2 更改數(shù)據(jù)庫(kù)名字,@newname 參數(shù)1 新名字; @dbname 參數(shù)2 舊名稱
別同時(shí)改一個(gè)數(shù)據(jù)庫(kù)名稱?
exec sp_renamedb @newname='p',@dbname='Phone'?
3 返回某個(gè)表列的信息?
exec sp_columns Students?
?4?查看一個(gè)表的約束信息
?exec sp_helpconstraint Students
?5 查看表的所有信息
?exec sp_help Students
?6 查看某個(gè)表的索引信息
?exec sp_helpindex Students
五:自定義存儲(chǔ)?的語(yǔ)法
?create procedure 過(guò)程名
-- @參數(shù)1 數(shù)據(jù)類型
-- @參數(shù)2 數(shù)據(jù)類型
--as
-- sql語(yǔ)句
--go
?六:關(guān)于自定義存儲(chǔ) 的例子
?一:創(chuàng)建一個(gè)存儲(chǔ)過(guò)程。查詢考試成績(jī),顯示學(xué)號(hào)姓名或者班級(jí)總成績(jī),并按照成績(jī)總分高低排序
?-- 統(tǒng)計(jì)分析考試成績(jī),顯示班級(jí)名稱 C#平均分 數(shù)據(jù)庫(kù)平均分 按照班級(jí)的分組來(lái)進(jìn)行實(shí)現(xiàn)
use SMDBgo-- 如果已經(jīng)存在 usp_test1存儲(chǔ)過(guò)程 就先刪除這個(gè)存儲(chǔ)過(guò)程if exists(select * from sysobjects where name ='usp_test1')drop procedure usp_tes1go-- 定義存儲(chǔ)過(guò)程create procedure usp_tes1as -- sql語(yǔ)句-- 查詢考試成績(jī),顯示學(xué)號(hào)姓名班級(jí)總成績(jī),并按照成績(jī)總分高低排序select Students.StudentId,StudentName,ClassName,總成績(jī) = (CSharp + SqlserverDB) from Studentsinner join StudentClass on StudentClass.ClassId = Students.ClassIdinner join ScoreList on ScoreList.StudentId = Students.StudentIdorder by 總成績(jī) DESC-- 統(tǒng)計(jì)考試成績(jī),顯示班級(jí)名稱 C#平均分 按照班級(jí)分組進(jìn)行實(shí)現(xiàn)select ClassName,CSharp平均分=AVG(CSharp),數(shù)據(jù)庫(kù)平均分 = AVG(SqlserverDB) from ScoreListinner join Students on ScoreList.StudentId = ScoreList.StudentIdinner join StudentClass on StudentClass.ClassId = Students.ClassIdgroup by ClassNameorder by ClassNamego-- 調(diào)用存儲(chǔ)過(guò)程exec usp_tes1
二:帶參數(shù)的存儲(chǔ)過(guò)程
查詢考試成績(jī)要求能夠按照自定義的及格線查詢結(jié)果?
use SMDBgocreate procedure usp_test2-- 輸入?yún)?shù)@cs int,-- csharp 及格線@db int -- 數(shù)據(jù)庫(kù)及格線
as select Students.StudentId,StudentName,CSharp,SqlserverDB from ScoreListinner join Students on Students.StudentId = ScoreList.StudentIdwhere SqlserverDB > @csselect Students.StudentId,StudentName,CSharp,SqlserverDB from ScoreListinner join Students on Students.StudentId = ScoreList.StudentIdwhere SqlserverDB > @db
go exec usp_test2 68,80
exec usp_test2 @cs = 50,@db = 70
exec usp_test2 @db = 70,@cs = 50