SQL Server 2008 - 테이블 값 함수에서 사용자 정의 테이블 유형을 반환하는 방법
다음은 사용자 정의 테이블 유형입니다.
CREATE TYPE [dbo].[FooType] AS TABLE(
[Bar] [INT],
)
다음은 테이블 값 함수에서 유형을 반환하기 위해 수행해야 했던 작업입니다.
CREATE FUNCTION [dbo].[GetFoos]
RETURN @FooTypes TABLE ([Bar] [INT])
INSERT INTO @FooTypes (1)
RETURN
기본적으로 저는 함수의 RETURN 문에 제 유형 정의를 다시 선언해야 합니다.RETURN 문에 유형을 간단히 선언할 수 있는 방법이 있습니까?
이게 효과가 있을 거라고 생각했을 겁니다
CREATE FUNCTION [dbo].[GetFoos]
RETURN @FooTypes [FooType]
INSERT INTO @FooTypes (1)
RETURN
이와 관련하여 MSDN/Google에서 도움을 찾을 수 없습니다. 아무도 없습니까?
편집
저는 제 대답을 표시하지 않았고, 6개월 후에 같은 시나리오를 마주하고 있기 때문에 이 질문에 부딪혔습니다.
테이블 값 함수에서 사용자 정의 테이블 유형을 반환할 수 있는지 아는 사람이 있습니까?그렇지 않다면 제가 한 것 외에 더 나은 해결 방법이 있을까요?(유형을 다시 입력합니다.)
함수에서 UDTT를 반환할 수는 없지만 스키마가 일치하는 한 테이블 변수를 반환하고 UDTT로 수신할 수 있습니다.다음 코드는 SQL Server 2008 R2에서 테스트되었습니다.
UDTT 만들기
CREATE TYPE dbo.MyCustomUDDT AS TABLE
(
FieldOne varchar (512),
FieldTwo varchar(1024)
)
변수 선언
DECLARE @uddt MyCustomUDDT;
DECLARE @Modifieduddt MyCustomUDDT;
함수 호출
INSERT INTO @Modifieduddt SELECT * FROM dbo.MyUDF(@uddt);
함수 서명
CREATE FUNCTION dbo.MyUDF(@localUDDT MyCustomUDDT)
RETURNS @tableVar TABLE
(
FieldOne varchar (512),
FieldTwo varchar(1024)
)
AS
BEGIN
--Modify your variable here
RETURN
END
이것이 누군가에게 도움이 되기를 바랍니다.
좋아요 - 그래서 할 수 없어요.
스크립트를 사용하여 테이블 정의를 반환 형식으로 복제할 수 있습니다.
여전히 - 이 문제가 SQL Server의 다음 버전에서 해결되기를 바랍니다.
CREATE FUNCTION의 구문은 테이블 반환 유형을 정의하는 유일한 방법이 열과 유형을 나열하는 것임을 나타냅니다.<table_type_definition>
SQL Server "Denali"에도 다음과 같은 정의가 있습니다.<table_type_definition>
이상하게도 구문에는 다중 문 표 값 함수나 이 조각을 참조하는 다른 함수가 포함되어 있지 않습니다.
나는 이것이 가능하다고 생각하지 않습니다.UDTT는 스칼라 값이 아니므로 스칼라 값 함수의 반환 형식으로 사용할 수 없습니다.또한 테이블 값 함수의 테이블 선언을 UDTT로 바꿀 수 없습니다.테이블 정의를 반복하는 것이 유일한 옵션인 것 같습니다.당신이 왜 이런 짓을 하는지 안다면 다른 방법을 찾을 수 있을 겁니다
언급URL : https://stackoverflow.com/questions/3089553/sql-server-2008-how-do-i-return-a-user-defined-table-type-from-a-table-valued
'source' 카테고리의 다른 글
일반 유형 '관찰 가능'에는 1개의 유형 인수가 필요합니다. (0) | 2023.06.26 |
---|---|
Angular2 - 서비스를 사용하여 구성 요소 간에 데이터 공유 (0) | 2023.06.26 |
Spring Boot JDBC 템플릿 (0) | 2023.06.26 |
오라클에서 커밋되지 않은 읽기 옵션을 허용합니까? (0) | 2023.06.26 |
스프링 부트 테스트 - 여러 테스트가 단일 컨텍스트를 공유할 수 있습니까? (0) | 2023.06.26 |