ストアド プロシージャとは何ですか?
ストアド プロシージャは、実行可能オブジェクトとしてデータベースに保存されている 1 つ以上の SQL コマンドです。
平たく言えば、ストアド プロシージャは実際には、特定の操作を完了できる一連の SQL ステートメントです。
それでは、なぜストアド プロシージャを使用するのでしょうか?
1. ストアド プロシージャは作成時にのみコンパイルされます。その後、ストアド プロシージャを実行するたびに再コンパイルする必要はありません。そのため、ストアド プロシージャを使用すると、SQL ステートメントが改善されます。データベースの実行速度。
2. データベース上で複雑な操作を実行する場合、複雑な操作をストアド プロシージャにカプセル化し、データベースが提供するトランザクション処理と組み合わせて使用できます。
3. ストアド プロシージャを再利用できるため、データベース開発者の作業負荷を軽減できます。
4. 高いセキュリティ、特定のユーザーのみが指定されたストアド プロシージャを使用する権限を持つように設定できます
ストアド プロシージャの使用方法は?
以下では、ストアド プロシージャについて学習するために Student テーブルを使用しています。ストアド プロシージャの簡単な使用法を理解したいため、すべての例は非常に単純です。
パラメータなしのストアドプロシージャ:
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
ローカル変数のデータを表示したい場合はどうすればよいでしょうか?
りー