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

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

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 20:07:42215ブラウズ

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

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

テーブルをパラメータとして SQL Server スカラー UDF に渡すことができます。ただし、ドキュメントに記載されているように、特定の制限が適用されます。タイムスタンプを除くすべてのデータ型が許可されます。この制限を克服するには、ユーザー定義のテーブル タイプ (UDTT) を作成できます。

TableType という名前の UDTT の例を次に示します。

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

UDTT を定義すると、その型のパラメータを受け入れる関数:

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;

パラメータは READONLY として定義されていることに注意してください。この関数を使用するには、UDTT の変数を作成し、そこにデータを挿入します:

DECLARE @myTable TableType;
INSERT INTO @myTable(LocationName) VALUES('aaa');
SELECT * FROM @myTable;

これで、Example 関数を呼び出して変数をパラメータとして渡すことができます:

SELECT dbo.Example(@myTable);

テーブルから値の CSV リストを返すという特定の要件に応じて、関数を変更できます。さらに、null や重複のチェックなど、関数内でフィルタリングを実行できます。

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

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