ホームページ >データベース >mysql チュートリアル >テーブルをパラメータとして SQL Server スカラー UDF に渡すにはどうすればよいですか?

テーブルをパラメータとして SQL Server スカラー UDF に渡すにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-05 15:48:46245ブラウズ

How Can I Pass a Table as a Parameter to a SQL Server Scalar UDF?

テーブルをパラメータとして SQL Server UDF に渡す

テーブルをパラメータとしてスカラー UDF に渡すことができます。 SQL Server、ユーザー定義のテーブル タイプを利用します。

ユーザー定義のテーブル タイプ

テーブル パラメーターの構造を表すテーブル タイプを定義します。次に例を示します。

CREATE TYPE TableType AS TABLE (LocationName VARCHAR(50))

UDF の定義

ユーザー定義のテーブル タイプのパラメーターを受け取るスカラー UDF を作成します。パラメータは READONLY として宣言する必要があります。例:

CREATE FUNCTION Example(@TableName TableType READONLY)
RETURNS VARCHAR(50)
AS
BEGIN
    DECLARE @name VARCHAR(50)

    SELECT TOP 1 @name = LocationName FROM @TableName
    RETURN @name
END

テーブル変数の受け渡し

SQL Server では、ユーザー定義のテーブル タイプの変数を作成し、そこにデータを移入できます。テーブル。例:

DECLARE @myTable TableType
INSERT INTO @myTable(LocationName) VALUES('aaa')

使用法

テーブル変数で UDF を使用するには、変数をパラメータとして渡します。例:

SELECT dbo.Example(@myTable)

重複と NULL の処理

テーブルに重複と NULL がないことを確認するには、UDF 内に関連するチェックを含めることができます。

CREATE FUNCTION Example(@TableName TableType READONLY)
RETURNS VARCHAR(50)
AS
BEGIN
    DECLARE @name VARCHAR(50)

    SELECT TOP 1 @name = LocationName 
    FROM @TableName 
    WHERE LocationName IS NOT NULL AND LocationName NOT IN (SELECT LocationName FROM @TableName WHERE LocationName IS NULL OR LocationName = @name)
    RETURN @name
END

以上がテーブルをパラメータとして SQL Server スカラー UDF に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。