[Database System] Stored Procedures in SQL Server
10559 ワード
Stored Procedure
Transact-SQL文セット
長所
1.サーバ/クライアントネットワークトラフィックの削減
1.サーバ/クライアントネットワークトラフィックの削減
2.強力なセキュリティ
3.コード再利用
4.メンテナンスが容易
クライアント・アプリケーションがプロセスを呼び出し、データベース・オペレーションをデータ・レイヤに保持する場合は、ベース・データベースの変更更新プロセスのみが必要です.アプリケーション・レイヤは独立しており、データベースのレイアウト、リレーションシップ、またはプロセスの変更を理解する必要はありません.
5.パフォーマンスの向上
ストアド・プロシージャのタイプ
Temporary Stored Procedure
2種類のlocal、global
local使用#
global使用##
System Stored Procedure
exec sp_databases --이런식으로 사용해볼 수 있음
Extended User-Defined Stored Procedure
Cなどのプログラミング言語で外部ルーチンを作成できます
User-Defined Stored Procedure
カスタム・プロシージャは、指定したデータベースまたはリソース・データベース以外のすべてのシステム・データベースで作成できます.
プロシージャの作成
syntax
CREATE [ OR ALTER ] { PROC | PROCEDURE }
[schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT | [READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
in,outとともに使用(重要)
create procedure uspSumProduct @p1 int,
@p2 int,
@p3 int,
@sum int out,
@product int out
as
begin
set @sum = @p1 + @p2 + @p3
set @product = @p1 * @p2 * @p3
end
go
------------
declare @v1 int, @v2 int;
exec uspSumProduct 3,5,7, @v1 out,@v2 out
print @v2
print @v1
Best Practices
Best Practices
CREATE [ OR ALTER ] { PROC | PROCEDURE }
[schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT | [READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
create procedure uspSumProduct @p1 int,
@p2 int,
@p3 int,
@sum int out,
@product int out
as
begin
set @sum = @p1 + @p2 + @p3
set @product = @p1 * @p2 * @p3
end
go
------------
declare @v1 int, @v2 int;
exec uspSumProduct 3,5,7, @v1 out,@v2 out
print @v2
print @v1
Limitations and Restrictions
<重要>
A procedure can reference tables that do not yet exist. At creation time, only syntax checking is performed. The procedure is not compiled until it is executed for the first time. Only during compilation are all objects referenced in the procedure resolved.
プログラムは、まだ存在しないテーブルを参照できます.生成時に文法チェックのみが実行されます.このプロシージャは、最初の実行までコンパイルされません.すべてのオブジェクトは、コンパイル中にのみ解析中に参照されます.
Reference
この問題について([Database System] Stored Procedures in SQL Server), 我々は、より多くの情報をここで見つけました
https://velog.io/@hylee/Database-System-Stored-Procedures-in-SQL-Server
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([Database System] Stored Procedures in SQL Server), 我々は、より多くの情報をここで見つけました https://velog.io/@hylee/Database-System-Stored-Procedures-in-SQL-Serverテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol