SQL Serverデータベースにおける記憶過程の紹介


格納プロセスとは?
他のプログラミング言語に接触したことがあれば、記憶プロセスは方法のように分かります。
彼が方法であるということは、同じような方法名を持っています。方法を伝達する変数と結果を返します。だから、プロセス名を記憶しています。プロセスパラメータも戻り値もあります。
保存プロセスの利点:   
記憶プロセスの能力はSQL言語の機能と柔軟性を大いに強化する。
1.データの安全性と完全性が保証されます。
2.保存プロセスによって、権限のないユーザを制御の下で間接的にデータベースにアクセスさせ、データの安全を保証することができる。
3.保存プロセスによって関連する動作を一緒に発生させ、データベースの完全性を維持することができる。
4.保存プロセスを実行する前に、データベースはすでに文法と構文分析を行い、最適化実行方案を提供しました。このようなコンパイルされたプロセスは5.SQL文の性能を大きく改善することができます。
6.ネットワークの通信量を低減することができる。
7.企業規則を体現した演算プログラムをデータベースサーバに入れて、集中的に制御する。
記憶プロセスは、システム格納プロセス、拡張記憶プロセス、およびユーザ独自の記憶プロセスに分けることができる。
システム格納プロセス
まずシステムストアプロセスを見てみます。システムストアプロセスはシステムによって定義されています。主にMASTERデータベースに保存されています。名前は「SP」で始まります。または「XP」で始まります。これらのシステムはMASTERデータベースに格納されているにもかかわらず、
しかし、他のデータベースでもシステム格納プロセスを起動できます。いくつかのシステムストレージプロセスは、新しいデータベースを作成するときに自動的に現在のデータベースに作成されます。
一般的なシステム格納プロセスには、次のようなものがあります。

exec sp_databases; --
exec sp_tables;        --
exec sp_columns student;--
exec sp_helpIndex student;--
exec sp_helpConstraint student;--
exec sp_helptext 'sp_stored_procedures';--
exec sp_stored_procedures;
exec sp_rename student, stuInfo;--
exec sp_renamedb myTempDB, myDB;--
exec sp_defaultdb 'master', 'myDB';--
exec sp_helpdb;-- ,
exec sp_helpdb master;
exec sp_attach_db --
exec sp_detach_db --
プロシージャシンタックス:
保存プロセスを作成する前に、まず保存プロセスの名前を教えてください。いくつかの記事を見ましたが、記憶過程を作る時にプレフィックスをつけて、記憶プロセス名の前にプレフィックスを付ける習慣を身につけることが大切です。このように前置きをするのが好きな人がいます。例えば、proc_。名前。このプレフィックスusp_も見られます。名前。前のprocはprocedureの略字で、後のsupはuser procedureという意味です。私は第一種類が好きです。次の記憶過程名は全部第一種類で書きます。名前の書き方はラクダの命名法を採用しています。
保存プロセスを作成するシンタックスは以下の通りです。

CREATE PROC[EDURE]

@ 1 [ ]=[ ] [OUTPUT]

@ 2 [ ]=[ ] [OUTPUT]

AS

SQL

EXEC [ ]

記憶プロセスの例を使用します。
1.パラメータなし

create procedure proc_select_officeinfo--( )
as select Id,Name from Office_Info--(sql )

exec proc_select_officeinfo--( )

2.入力パラメータ付き

create procedure procedure_proc_GetoffinfoById --( )
@Id int--( )
as select Name from dbo.Office_Info where Id=@Id--(sql )

exec procedure_proc_GetoffinfoById 2--( , , )

: , , ,

3.入出力パラメータ付き

create procedure proc_office_info--( )
@Id int,@Name varchar(20) output--( ) output
as
begin
select @Name=Name from dbo.Office_Info where Id=@Id --(sql )
end
declare @houseName varchar(20) -- ,
exec proc_office_info--( )
4,@houseName output--( output @ = OUTPUT , )
select @houseName--( )
4.戻り値付き

create procedure proc_office_info--( )
@Id int--( )
as
begin
if(select Name from dbo.Office_Info where Id=@Id)=null --(sql )
begin
return -1
end
else
begin
return 1
end
end

declare @house varchar(20) -- ,
exec @house=proc_office_info 2 --( , )
-- : int
print @house