ホームページ > php教程 > PHP开发 > SQL Server のストアド プロシージャの基本的な知識

SQL Server のストアド プロシージャの基本的な知識

高洛峰
リリース: 2016-12-14 13:40:30
オリジナル
1273 人が閲覧しました

ストアド プロシージャとは何ですか?
ストアド プロシージャは、実行可能オブジェクトとしてデータベースに保存されている 1 つ以上の SQL コマンドです。
平たく言えば、ストアド プロシージャは実際には、特定の操作を完了できる一連の SQL ステートメントです。

それでは、なぜストアド プロシージャを使用するのでしょうか?
1. ストアド プロシージャは作成時にのみコンパイルされます。その後、ストアド プロシージャを実行するたびに再コンパイルする必要はありません。そのため、ストアド プロシージャを使用すると、SQL ステートメントが改善されます。データベースの実行速度。
2. データベース上で複雑な操作を実行する場合、複雑な操作をストアド プロシージャにカプセル化し、データベースが提供するトランザクション処理と組み合わせて使用​​できます。
3. ストアド プロシージャを再利用できるため、データベース開発者の作業負荷を軽減できます。
4. 高いセキュリティ、特定のユーザーのみが指定されたストアド プロシージャを使用する権限を持つように設定できます

ストアド プロシージャの使用方法は?
以下では、ストアド プロシージャについて学習するために Student テーブルを使用しています。ストアド プロシージャの簡単な使用法を理解したいため、すべての例は非常に単純です。

SQL Server のストアド プロシージャの基本的な知識

パラメータなしのストアドプロシージャ:
Student テーブル内のすべての情報を選択します。

create proc StuProc
as      //此处 as 不可以省略不写
begin   //begin 和 end 是一对,不可以只写其中一个,但可以都不写
select S#,Sname,Sage,Ssex from student
end
go
ログイン後にコピー

パラメータ付きストアドプロシージャ:
グローバル変数
グローバル変数は、関数の外側で定義される外部変数とも呼ばれます。変数が定義されている場所から始まり、プログラム ファイルの最後で終了します。
指定した名前の生徒情報を選択します:

create proc StuProc
@sname varchar(100)   
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc '赵雷'   //执行语句
ログイン後にコピー

上記は外部から変数に値を代入する方法ですが、内部で変数のデフォルト値を直接設定することもできます

create proc StuProc
@sname varchar(100)='赵雷'
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc
ログイン後にコピー

変数の内容を出力することもできます、出力を使用して

create proc StuProc
@sname varchar(100),
@IsRight int  output //传出参数
as 
if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)
set @IsRight =1
else
set @IsRight=0
go

declare @IsRight int 
exec StuProc '赵雷' , @IsRight output
select @IsRight
ログイン後にコピー

上記はグローバル変数です。ローカル変数について学びましょう
ローカル変数は内部変数とも呼ばれます。ローカル変数は関数内で定義されます。そのスコープは関数の内部に限定されており、関数を離れた後にそのような変数を使用することは違法です。
ローカル変数の定義: 使用する前に Declare コマンドで設定する必要があります。declare{@変数名データ型}
ローカル変数の代入方法: set{@変数名=式} または select{@変数名=式 }
ローカル変数の表示: @変数名を選択

create proc StuProc
as 
declare @sname varchar(100)
set @sname='赵雷'
select S#,Sname,Sage,Ssex from student where sname=@sname
go

exec StuProc
ログイン後にコピー

ローカル変数のデータを表示したい場合はどうすればよいでしょうか?

りー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート