SQL Server 7.0 入門 (5)

黄舟
リリース: 2016-12-24 17:39:14
オリジナル
868 人が閲覧しました

SQL Server を使用してアプリケーションを開発する
ストアド プロシージャとトリガーを作成する
ストアド プロシージャとトリガーは、ユーザーによって作成され、サーバー上に常駐する一連の Transact SQL クエリ ステートメントです。トリガーは、特定の条件下でシステムによって実行されます。ストアド プロシージャを使用すると、アプリケーションのパフォーマンスを向上させることができます。クライアント プログラムがデータにアクセスする必要がある場合、通常、データにアクセスするために 5 つの手順を実行する必要があります:
1) クエリ ステートメントがサーバーに送信されます。
2) サーバーは SQL コードをコンパイルします。
3) 生成されたクエリの実行計画を最適化します。
4) データ エンジンがクエリを実行します。
5) 結果はクライアント プログラムに返されます。
ストアド プロシージャは、作成時にコンパイルされます。ストアド プロシージャが初めて実行されるとき、SQL Server はクエリ実行プランを生成し、将来の使用に備えて保存します。ストアド プロシージャを通じてリクエストを行う場合、上記の手順 2 と 3 は不要になり、システムのパフォーマンスが大幅に向上します。ステップ1でもパフォーマンスが向上します。この時点でサーバーに送信されるステートメントはストアド プロシージャの EXECUTE ステートメントにすぎず、大規模で複雑なクエリではないためです。この機能により、ネットワーク トラフィックが軽減されます。
ストアド プロシージャは、パフォーマンスの向上に加えて、アプリケーションの集中メンテナンスの利便性も提供します。クエリをアプリケーションに埋め込む場合。クエリを変更する必要がある場合は、アプリケーションを再コンパイルし、すべてのクライアントに再公開する必要があります。ストアド プロシージャでは、変更はユーザーに対して透過的に行われます。必要なのは、サーバー上でストアド プロシージャを再コンパイルすることだけです。
ストアド プロシージャはセキュリティ メカニズムも提供できます。ユーザーはストアド プロシージャ内のコマンドを実行する権限を持っていない場合でも、ストアド プロシージャ自体を実行する権限を持っている場合があります。場合によっては、システム管理者がユーザーにデータ変更 (UPDATE、INSERT、および DELETE) 権限を与えないことがあります。作成されたストアド プロシージャは、これらの操作を実行できます。もちろん、ユーザーにはストアド プロシージャを実行する権限が必要です。

ストアド プロシージャを作成する
ストアド プロシージャは、次の目的を達成できます。
· ステータス値を返します。
· 他のストアド プロシージャを呼び出します。
· リモートサーバー上で実行されます。
ストアド プロシージャは「sysobjects」システム テーブルにエントリを持ち、そのタイプは「P」です。ストアド プロシージャのテキストは、「syscomments」システム テーブルに保存されます。ストアド プロシージャを作成するには、Transact SQL コマンド CREATE PROCEDURE を使用します。 U 例: ■ Pubs
Go
を使用します。
プロシージャ AP_GetAutHorsforpplisher
AS を作成します。 a.au_lname、A.AU_FNAME
FROM AUTHORS A、Titleauthor Ta、Titles T、Publisher s p a (a.au_id = ta.au_id
および ta) を選択します。 Title_id = t.title_id
' t t-title d t t. ;number]
パラメータ名] [出力] [, _n]]
[{再コンパイル | 暗号化}]
[複製用] ]
As
Number は、同じ名前をグループ化するために使用される整数です。グループ化では、drop プロシージャ ステートメントを通じてすべてのプロシージャが 1 つのグループに結合されます。
@parameter_name はパラメータの名前を指定します。
RECOMPILE は、プロセスが実行されるたびにコンパイルが必要であることを意味します。
ENCRYPTION は、プロセスのテキストを「syscomments」テーブルで暗号化する必要があることを示します。
FOR REPLICATION は、送信側サーバーでプロセスを実行できないことを意味します。

ストアド プロシージャにパラメータを渡す
ストアド プロシージャはパラメータを受け入れることができます。注: プロセスのパラメーターは、ユーザーが定義したデータのタイプにすることもできます。

パラメータにデフォルト値を与えます
ユーザーはストアド プロシージャのパラメータのデフォルト値を定義することもできます。実行時に必要なパラメータが指定されていない場合、システムはデフォルト値をパラメータとして使用します。デフォルト値が定義されておらず、実行時にパラメータも指定されていない場合、SQL Server はエラーを返します。ストアド プロシージャでデフォルト値を定義し、何らかのロジックを使用してパラメータが指定されているかどうかを検出し、適切なアクションを実行することをお勧めします。 U 例: ■ Pubs を使用します
Go

Create Procedure AP_GetAutHorsForpublisher
@Publishername Varchar (40) = 'New Moon Books'
SELECT A.AU_LNAME, A.AU_FNAM e
from authors a、titleauthor ta、titles t、publishers p
WHERE a.au_id = ta.Au_id

上記は SQL Server 7.0 (V) 入門の内容です。その他の関連コンテンツについては、注意してください。 PHP 中国語 Web サイト (www.php.cn) にアクセスしてください。




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