SQLServer -- 自定義無引數儲存過程
阿新 • • 發佈:2019-02-01
自定義儲過程
use StuManageDB
go
if exists(Select * from sysobjects where name='usp_ScoreQuery')
drop procedure usp_ScoreQuery
go
create procedure usp_ScoreQuery --建立儲存過程
as
--查詢考試資訊
select Students.StudentId,StudentName,ClassName,ScoreSum=(CSharp+SQLServerDB)
from Students
inner join StudentClass on Students.ClassId = StudentClass.ClassId
inner join ScoreList on Students.StudentId = ScoreList.StudentId
order by ScoreSum DESC
go
exec usp_ScoreQuery
多張表的儲存過程
use StuManageDB
go
if exists(Select * from sysobjects where name='usp_ScoreQuery')
drop procedure usp_ScoreQuery
go
create procedure usp_ScoreQuery --建立儲存過程
as
--查詢考試資訊
select Students.StudentId,StudentName,ClassName,ScoreSum=(CSharp+SQLServerDB)
from Students
inner join StudentClass on Students.ClassId = StudentClass.ClassId
inner join ScoreList on Students.StudentId = ScoreList.StudentId
order by ScoreSum DESC
--查詢班級平均分
select ClassName,C#Avg=Avg(CSharp),DBAvg=Avg(SQLServerDB)
from ScoreList
inner join Students on Students.StudentId = ScoreList.StudentId
inner join StudentClass on StudentClass.ClassId = Students.ClassId
group by ClassName order by ClassName
go
exec usp_ScoreQuery
儲存過程臨時表
在處理資料過程中臨時儲存一些資料。
use StuManageDB
go
if exists(Select * from sysobjects where name='usp_ScoreQuery')
drop procedure usp_ScoreQuery
go
create procedure usp_ScoreQuery --建立儲存過程
as
--查詢考試資訊
select Students.StudentId,StudentName,ClassName,ScoreSum=(CSharp+SQLServerDB)
from Students
inner join StudentClass on Students.ClassId = StudentClass.ClassId
inner join ScoreList on Students.StudentId = ScoreList.StudentId
order by ScoreSum DESC
--使用臨時表
select StudentClass.ClassId,c#Avg=Avg(CSharp),DBAvg=Avg(SQLServerDB)
into #ScoreTemp from ScoreList
inner join Students on Students.StudentId=ScoreList.StudentId
inner join StudentClass on StudentClass.ClassId = Students.ClassId
group by StudentClass.ClassId order by StudentClass.ClassId
--將臨時表和班級查詢表關聯
select ClassName,c#Avg,DBAvg from #ScoreTemp
inner join StudentClass on StudentClass.ClassId=#ScoreTemp.ClassId
go
exec usp_ScoreQuery