동적 선택 문이 있는 테이블 반환 함수

select union all동적 쿼리를 반환해야 하는 사용자 정의 테이블 반환 함수 만들기 .

나는 테이블이 tbl_tablesinfo테이블 이름을 포함 tbl1, tbl2, tbl3모든 약 3000 테이블 이름에서 등.

뷰를 만들고 싶지 않지만 수행하여 select * from모든 테이블을 반환해야 하는 함수입니다 union all.

내 시도:

CREATE FUNCTION udf_alldata()
RETURNS TABLE
AS
BEGIN
    DECLARE @Var VARCHAR(MAX) = ''

    SELECT 
        @Var = STUFF((SELECT ' SELECT * FROM [' + tbl.TableNames + '] UNION ALL'
                      FROM [TestDB].SYS.TABLES tb 
                      INNER JOIN [TestDB].dbo.[tbl_tablesinfo] tbl ON tb.name = tbl.TableNames
                      FOR XML PATH('')), 1, 1, '');

    SET @var = LEFT(@var, LEN(@var) - 10);

    EXEC @var 

    RETURN
END

오류가 발생합니다.

'BEGIN' 근처에 잘못된 구문이 있습니다.

이렇게 하는 이유는 3k 테이블로 뷰를 생성하는 것이 느려지고 30분 정도의 시간이 걸리기 때문에 함수를 생성하여 대안을 찾고 있습니다.

getqn

에서 문서 말했다 분명하다 :

사용자 정의 함수는 동적 SQL 또는 임시 테이블을 사용할 수 없습니다. 테이블 변수가 허용됩니다.

즉, 저장 프로시저를 사용해야 하며 원하는 경우 테이블에 데이터를 삽입할 수 있으므로 나쁘지 않습니다.

INSERT INTO @Table
EXEC [dbo].[stored_procedured_name]

INSERT INTO #Table
EXEC [dbo].[stored_procedured_name]

따라서 귀하의 경우 다음을 갖게 됩니다.

CREATE PROCEDURE udf_alldata
AS
BEGIN
    DECLARE @Var VARCHAR(MAX) = ''

    SELECT 
        @Var = STUFF((SELECT ' SELECT * FROM [' + tbl.TableNames + '] UNION ALL'
                      FROM [TestDB].SYS.TABLES tb 
                      INNER JOIN [TestDB].dbo.[tbl_tablesinfo] tbl ON tb.name = tbl.TableNames
                      FOR XML PATH('')), 1, 1, '');

    SET @var = LEFT(@var, LEN(@var) - 10);

    EXEC sp_executesql @var 

    RETURN
END

실제로 실행할 수 dynamic T-SQL in function있지만 이것은 SQL CLR을 사용하는 특별한 경우입니다. 이 작업을 수행하는 방법을 보여드릴 수 있지만 저장 프로시저를 고수하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

선택이있는 jQuery 동적 테이블

테이블을 업데이트하는 동안 반환 된 선택 행 사용

함수가 반환 한 테이블에서 열 값을 선택할 수 있습니까?

선택적 반환 값이있는 Python 함수의 지연 저장 및 코드 실행

선택적이고 다른 테이블에 있는 값을 기준으로 (MySQL) 주문할 수 있습니까?

동적 이름 또는 여러 이름이있는 테이블에서 선택

SQL Server에서 동적 테이블 반환 함수를 만들 수 있습니까?

테이블 반환 함수에서 매개 변수로 선택 쿼리 사용

동적 선택 목록의 선택된 내용을 새 테이블에 추가 할 수 있습니까?

postgis 함수는 기하 도형이 있는 테이블을 올바르게 반환하지만 pg_featureserv에서 선택하지 않습니다.

테이블 항목(테이블 이름, 열, WHERE 문의 선택)에서 동적 SQL 쿼리를 작성할 수 있습니까?

선택적 반환 유형이있는 JavaBean Introspection

R : if 문없이 선택적 매개 변수가있는 함수 생성

동적 열이있는 데이터 테이블에서 고유 행 선택

관련 테이블에 선택적 매개 변수가있는 SQL 쿼리

동적 SQL 명령을 실행하여 테이블에서 열을 사용할 수있는 경우 값을 반환 할 열을 선택할 때 모호한 열 이름

주어진 테이블에 대한 동적 열 집합을 반환하는 함수

아직 선언되지 않은 테이블을 반환하는 함수 생성

여러 열이있는 데이터 테이블을 반환하는 함수를 적용 할 때 원래 데이터 테이블의 모든 열 유지

선택적 인수가있는 Python 데코레이터 (함수)

첫 번째 tr 만 반환하는 jQuery 선택 테이블

열 데이터가 다른 테이블과 동일한지 여부에 따라 다른 테이블에서 선택할 수 있는 Laravel Raw 문

매개 변수가있는 SQL 문에 테이블 반환 매개 변수를 전달할 때 '스칼라 변수를 선언해야 함'오류

동적 값이있는 Jquery 선택기

동적 선택 기능이있는 jLinq

새 레이블을 선택할 때 업데이트되지 않는 Docker 컨테이너 기반 Azure 함수

동일한 열이있는 여러 테이블에서 선택

동일한 열이있는 두 테이블에서 선택

동일한 열이 있는 여러 테이블 선택

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관