sql >> データベース >  >> RDS >> Sqlserver

SQL Serverのストアドプロシージャまたはユーザー定義関数のパラメーターを返す(T-SQLの例)

    SQL Serverでは、Transact-SQL PARAMETERSを使用できます。 ストアドプロシージャまたはユーザー定義関数で使用されるパラメーターを検索するためのシステム情報スキーマビュー。

    具体的には、現在のデータベース内の現在のユーザーがアクセスできるユーザー定義関数またはストアドプロシージャのパラメータごとに1行を返します。

    このビューを使用するには、INFORMATION_SCHEMA.PARAMETERSの完全修飾名を指定します 。

    例1-基本的な使用法

    これは、現在のユーザーがアクセスできる現在のデータベース内のすべてのストアドプロシージャとユーザー定義関数で使用されるパラメーターに関する情報を返す例です。

    SELECT 
      SPECIFIC_CATALOG AS [Database],
      SPECIFIC_SCHEMA AS [Schema],
      SPECIFIC_NAME AS [Table],
      PARAMETER_MODE AS [Mode],
      IS_RESULT,
      PARAMETER_NAME,
      DATA_TYPE
    FROM INFORMATION_SCHEMA.PARAMETERS;
    

    結果:

    +------------+----------+----------------------+--------+-------------+------------------+-------------+
    | Database   | Schema   | Table                | Mode   | IS_RESULT   | PARAMETER_NAME   | DATA_TYPE   |
    |------------+----------+----------------------+--------+-------------+------------------+-------------|
    | Music      | dbo      | ISOweek              | OUT    | YES         |                  | int         |
    | Music      | dbo      | ISOweek              | IN     | NO          | @DATE            | datetime    |
    | Music      | dbo      | ufn_AlbumsByGenre    | IN     | NO          | @GenreId         | int         |
    | Music      | dbo      | spAlbumsFromArtist   | IN     | NO          | @ArtistName      | varchar     |
    | Music      | dbo      | uspGetAlbumsByArtist | IN     | NO          | @ArtistId        | int         |
    +------------+----------+----------------------+--------+-------------+------------------+-------------+
    

    この例では、ビューから7列のみを返すことを選択しました。次の例では、すべての列が表示されます。

    例2–すべての列を返す

    この例では、ビューが返すすべての列を含めます。また、水平方向にスクロールする必要がないように、垂直方向の出力を使用しています。また、簡潔にするために、WHEREを使用します 1つのパラメーターを使用する1つのユーザー定義関数に関する情報を返すための句(したがって、1つの行のみが返されます)。

    SELECT * 
    FROM INFORMATION_SCHEMA.PARAMETERS
    WHERE SPECIFIC_NAME = 'ufn_AlbumsByGenre';
    

    結果(垂直出力を使用):

    SPECIFIC_CATALOG          | Music
    SPECIFIC_SCHEMA           | dbo
    SPECIFIC_NAME             | ufn_AlbumsByGenre
    ORDINAL_POSITION          | 1
    PARAMETER_MODE            | IN
    IS_RESULT                 | NO
    AS_LOCATOR                | NO
    PARAMETER_NAME            | @GenreId
    DATA_TYPE                 | int
    CHARACTER_MAXIMUM_LENGTH  | NULL
    CHARACTER_OCTET_LENGTH    | NULL
    COLLATION_CATALOG         | NULL
    COLLATION_SCHEMA          | NULL
    COLLATION_NAME            | NULL
    CHARACTER_SET_CATALOG     | NULL
    CHARACTER_SET_SCHEMA      | NULL
    CHARACTER_SET_NAME        | NULL
    NUMERIC_PRECISION         | 10
    NUMERIC_PRECISION_RADIX   | 10
    NUMERIC_SCALE             | 0
    DATETIME_PRECISION        | NULL
    INTERVAL_TYPE             | NULL
    INTERVAL_PRECISION        | NULL
    USER_DEFINED_TYPE_CATALOG | NULL
    USER_DEFINED_TYPE_SCHEMA  | NULL
    USER_DEFINED_TYPE_NAME    | NULL
    SCOPE_CATALOG             | NULL
    SCOPE_SCHEMA              | NULL
    SCOPE_NAME                | NULL
    

    このビューによって返される各列については、Microsoftのドキュメントを参照してください。


    1. 0〜60:間接チェックポイントへの切り替え

    2. MySQLデータ-ページングを実装する最良の方法は?

    3. C#でSQLクエリを直接実行する方法は?

    4. SQLServerの「IDENTITYをデータ型に変換する算術オーバーフローエラー…」を修正しました