ホームページ >php教程 >PHP开发 >SQL ストアド プロシージャのいくつかの簡単な例

SQL ストアド プロシージャのいくつかの簡単な例

高洛峰
高洛峰オリジナル
2016-12-14 13:42:171733ブラウズ

はじめに: SQL ストレージはデータベース操作プロセスの重要な部分でもあり、一部の初心者にとっては理解しにくいものです。この記事では、データベース内の SQL ストアド プロシージャを分析するためにいくつかの例を使用します。物事が視覚化され、理解しやすくなります。

例 1:

create proc proc_stu
@sname varchar(20),
@pwd varchar(20)
as
select * from ren where sname=@sname and pwd=@pwd
go

結果の表示: proc_stu 'admin','admin'

例 2:

次のストアド プロシージャは、失敗した場合は 0 を返し、成功した場合は 1 を返します。

CREATE PROCEDURE VALIDATE @USERNAME CHAR( 20),@PASSWORD CHAR(20),@LEGAL ビット出力
AS

IF EXISTS(SELECT * FROM REN WHERE SNAME = @USERNAME AND PWD = @PASSWORD)
SELECT @LEGAL = 1
ELSE
SELECT @LEGAL = 0

プログラム内でストアド プロシージャを呼び出し、@LEGAL パラメーターの値に基づいてユーザーが正当であるかどうかを判断します。

例 3: 効率的なデータ ページング ストアド プロシージャは、数百万のデータを簡単に処理できます


CREATE PROCEDURE pageTest -- ページめくりのテスト
-- 並べ替えフィールドは最初の列に配置する必要があります

(
@ FirstID nvarchar(20)=null, -- 現在のページの最初のレコードの並べ替えフィールドの値
@LastID nvarchar(20)=null, -- 現在のページの最後のレコードの並べ替えフィールドの値
@isNext bit=null, --true 1: 次のページ; false 0: 前のページ
@allCount int 出力、-レコードの合計数を返します
@pageSize int 出力、-1 ページのレコード数を返します
@CurPage int -- ページ番号 (ページ) 0: 最初のページ; -1 最後のページ
)

AS

if @CurPage=0 -- 最初のページを示します
begin
-- records
select @allCount=count(ProductId) from Product_test

set @pageSize=10
-- 最初のページのデータを返す
上位 10 を選択
ProductId,
ProductName,
Introduction
from Product_test order by Product_test
end

else if @CurPage=-1--最後のページを示します

select * from
(上位 10 個の ProductId、
ProductName、
紹介

from Product_test order by ProductId desc ) as aa
order by ProductId
else

begin
if @isNext=1
-- 次のページに進みます
Product_test から上位 10 個の ProductId、
ProductName、
Introduction
を ProductId > @LastID 順に選択します
else
-- 前のページに進みます
select * from
(上位 10 個の ProductId,
ProductName,
Introduction
from Product_test where ProductId < @FirstID order by ProductId desc) as bb order by ProductId
end

上記の 3 つの例は、典型的な SQL ストアド プロシージャです。一生懸命勉強して、必要なことを学びます。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。