Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

CREATE PROCEDURE 文 [T-SQL]

この文は、Adaptive Server Enterprise 互換の方法で、データベース内にプロシージャを作成するために使用します。

構文 1

次の Transact-SQL CREATE PROCEDURE 文のサブセットが SQL Anywhere でサポートされています。

CREATE PROCEDURE [owner.]procedure_name
[ NO RESULT SET ]
[ [ ( ] @parameter_name data-type [ = default ] [ OUTPUT ], ... [ ) ] ]
[ WITH RECOMPILE ] AS statement-list
パラメータ
  • NO RESULT SET 句   このプロシージャによって結果セットが返されないことを宣言します。この句は、プロシージャが結果セットを返さないことを外部環境から知る必要がある場合に役立ちます。

備考

Transact-SQL と SQL Anywhere 文 (Watcom-SQL) の間の次の相違点のリストは、両方のダイアレクトで記述する際に役立ちます。

  • @ をプレフィクスとする変数名   "@" は Transact-SQL 変数名を示します。Watcom-SQL では、変数には有効な識別子であればどれでも使用でき、@ プレフィクスはオプションです。

  • 入出力パラメータ   Watcom-SQL プロシージャ・パラメータは、デフォルトでは INOUT であり、IN、OUT、または INOUT としても指定できます。Transact-SQL プロシージャ・パラメータは、デフォルトでは INPUT パラメータであり、OUTPUT としても指定できます。これらの SQL Anywhere で INOUT または OUT として宣言されるパラメータは、Transact-SQL では OUTPUT として宣言してください。

  • パラメータのデフォルト値   Watcom-SQL のプロシージャ・パラメータには、キーワード DEFAULT を使用してデフォルト値を設定します。Transact-SQL では等号 (=) を使用してデフォルト値を設定します。

  • 結果セットを返す   Watcom-SQL は RESULT 句を使用して、返される結果セットを指定します。Transact-SQL プロシージャでは、最初のクエリのカラム名またはエイリアス名が呼び出し環境に返されます。

    次の Transact-SQL プロシージャは、結果セットが Transact-SQL ストアド・プロシージャから返される方法を示します。

    CREATE PROCEDURE showdept @deptname varchar(30)
    AS
       SELECT Employees.Surname, Employees.GivenName
       FROM Departments, Employees
       WHERE Departments.DepartmentName = @deptname
       AND Departments.DepartmentID = Employees.DepartmentID;

    次に、これに対応する Watcom-SQL のプロシージャを示します。

    CREATE PROCEDURE showdept(in deptname
             varchar(30) )
    RESULT ( lastname char(20), firstname char(20))
    ON EXCEPTION RESUME
    BEGIN
       SELECT Employees.Surname, Employees.GivenName
       FROM Departments, Employees
       WHERE Departments.DepartmentName = deptname
       AND Departments.DepartmentID = Employees.DepartmentID
    END;

  • プロシージャ本体   Transact-SQL プロシージャの本体は、AS キーワードをプレフィクスとして付けた Transact-SQL 文のリストです。Watcom-SQL プロシージャの本体は、BEGIN と END キーワードで囲まれた複合文です。

パーミッション

RESOURCE 権限が必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   Transact-SQL 拡張。

  • Sybase   SQL Anywhere は Adaptive Server Enterprise の CREATE PROCEDURE 文構文のサブセットをサポートします。

    Transact-SQL WITH RECOMPILE オプション句があっても無視されます。SQL Anywhere は、常にデータベース起動後に初めて実行されたプロシージャを再コンパイルし、コンパイルされたプロシージャをデータベースが停止するまで保管します。

    プロシージャのグループはサポートされません。