>데이터 베이스 >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;

이제 예제 함수를 호출하고 변수를 매개변수로 전달할 수 있습니다.

SELECT dbo.Example(@myTable);

테이블에서 CSV 값 목록을 반환해야 하는 특정 요구 사항에 맞게 함수를 수정할 수 있습니다. 또한 함수 내에서 null 및 중복 확인과 같은 필터링을 수행할 수 있습니다.

위 내용은 테이블을 SQL Server UDF에 매개변수로 전달하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.