Power Apps에서 SQL Server에 연결하기

Azure 또는 온-프레미스 데이터베이스에서 SQL Server에 연결할 수 있습니다.

참고

새로 생성된 SQL 데이터 원본에는 이전 버전의 Power Apps처럼 더 이상 [dbo] 접두사가 붙지 않습니다.

자세한 내용은 Power Apps의 일반적인 문제 및 해결 방법을 참조하세요.

자동으로 앱 생성

사용 중인 Power Apps 인터페이스에 따라 새로운 디자인 또는 클래식 디자인 앱을 빌드합니다.

  1. Power Apps에 로그인합니다.

  2. 페이지에서 단일 페이지 갤러리 또는 세 화면 모바일 옵션 중 하나를 선택합니다.

    • 반응형 레이아웃으로 단일 페이지 갤러리 앱을 만들려면 다음 중 하나를 선택합니다.
      • 데이터로 시작 > 외부 데이터 선택 > SQL에서.
      • 페이지 디자인으로 시작 > 외부 데이터에 연결된 갤러리 > SQL에서.
    • 3개 화면 모바일 앱을 만들려면 앱 템플릿으로 시작 > SQL에서를 선택합니다.
  3. SQL 연결을 선택한 다음 테이블을 선택합니다. 다른 연결을 선택하려면 ... 오버플로 메뉴를 선택하여 연결을 전환하거나 새 SQL 연결을 생성하세요.

    참고

    한 번에 하나의 연결만 표시됩니다.

  4. 완료되면 앱 만들기를 선택합니다.

Power Fx에서 직접 저장 프로시저 호출(프리뷰)

SQL Server 저장 프로시저 프리뷰 스위치를 켜면 Power Fx에서 SQL Server 저장 프로시저를 직접 호출할 수 있습니다.

참고

출력 매개 변수는 지원되지 않습니다.

  1. 설정 > 예정된 기능 > 프리뷰로 이동합니다.
  2. 저장 프로시저를 검색하세요.
  3. SQL Server 저장 프로시저에 대해 토글을 켜짐으로 설정합니다.
  4. 앱을 저장하고 다시 엽니다.

켜짐으로 설정된 SQL Server 저장 프로시저 토글을 보여주는 스크린샷.

앱에 SQL Server 연결을 추가하면 이제 테이블과 보기 또는 저장 프로시저를 추가할 수 있습니다. 이 기능은 보안 암시적 연결에서도 작동합니다.

앱에 추가할 수 있는 테이블, 보기 및 저장 프로시저 목록을 보여주는 스크린샷.

저장 프로시저가 즉시 표시되지 않으면 검색하는 것이 더 빠릅니다.

저장 프로시저를 선택하면 하위 노드가 나타나고 해당 저장 프로시저를 갤러리 및 테이블에 사용하기에 안전함으로 지정할 수 있습니다. 이 옵션을 선택하면 앱에서 사용할 테이블 갤러리의 Items 속성으로 저장 프로시저를 할당할 수 있습니다.

다음과 같은 경우에만 이 옵션을 활성화하십시오.

  1. Power Apps가 컨트롤을 새로 고칠 때마다 요청 시 이 프로시저를 여러 번 호출해도 부작용이 없습니다. 갤러리 또는 테이블의 Items 속성과 함께 사용하면 Power Apps는 시스템에서 새로 고침이 필요하다고 판단할 때마다 저장 프로시저를 호출합니다. 저장 프로시저가 호출되는 시점을 제어할 수 없습니다.
  2. 저장 프로시저에서 반환하는 데이터의 양은 적당한 것입니다. 저장 프로시저와 같은 작업 호출에는 검색되는 행 수에 제한이 없습니다. 테이블이나 보기와 같은 테이블 형식 데이터 원본처럼 100개의 레코드 증분 단위로 자동으로 페이징되지 않습니다. 따라서 저장 프로시저가 너무 많은 데이터(수천 개의 레코드)를 반환하면 앱 속도가 느려지거나 충돌이 발생할 수 있습니다. 성능상의 이유로 2,000개 미만의 레코드를 가져와야 합니다.

중요

저장 프로시저의 반환 값 스키마는 정적이어야 합니다. 이는 통화마다 변경되지 않음을 의미합니다. 예를 들어 저장 프로시저를 호출하여 두 개의 테이블을 반환하는 경우 항상 두 개의 테이블을 반환해야 합니다. 결과의 스키마가 동적이면 Power Apps과 함께 사용하면 안 됩니다. 예를 들어 저장 프로시저를 호출하여 때로는 하나의 테이블을 반환하고 때로는 두 개의 테이블을 반환하는 경우 Power Apps에서는 올바르게 작동하지 않습니다. Power Apps에는 이 호출에 대한 정적 스키마가 필요합니다.

저장 프로시저를 추가하면 프로젝트에 데이터 원본이 두 개 이상 표시될 수 있습니다.

SQL 데이터 원본을 보여주는 스크린샷.

Power Apps에서 저장 프로시저를 사용하려면 먼저 저장 프로시저 이름 앞에 연결된 커넥터 이름과 저장 프로시저 이름을 붙입니다. 예제의 'Paruntimedb.dbonewlibrarybook'은 이러한 패턴을 보여줍니다. 또한 Power Apps가 저장 프로시저를 가져올 때 전체 이름을 연결합니다. 따라서 'dbo.newlibrarybook'은 'dbonewlibrarybook'이 됩니다.

Power Apps의 텍스트 값을 읽으므로 필요에 따라 저장 프로시저에 전달할 때 값을 적절하게 변환해야 합니다. 예를 들어, SQL에서 정수를 업데이트하는 경우 'Value()'를 사용하여 필드의 텍스트를 변환해야 합니다.

저장 프로시저를 직접 호출.

UI에 대해 안전하다고 선언한 후 갤러리의 Items 속성에 대한 저장 프로시저에 액세스할 수 있습니다. 데이터 원본 이름과 저장 프로시저 이름 뒤에 'ResultSets'를 참조하세요. 테이블 1, 테이블 2 등과 같이 반환된 테이블 집합을 참조하여 여러 결과에 액세스할 수 있습니다.

예를 들어 'dbo.spo_show_all_library_books()'라는 저장 프로시저를 사용하여 'Paruntimedb'라는 데이터 원본의 저장 프로시저에 대한 액세스는 다음과 같습니다.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

그러면 갤러리가 레코드로 채워집니다. 그러나 저장 프로시저는 테이블 형식 모델에 작업 동작을 추가한 것입니다. Refresh()는 테이블 형식 데이터 원본에서만 작동하며 저장 프로시저에서는 사용할 수 없습니다. 그런 다음 레코드가 생성, 업데이트 또는 삭제될 때 갤러리를 새로 고쳐야 합니다. 테이블 형식 데이터 원본에 대한 양식에서 Submit()을 사용하면 내부적으로 Refresh()가 효과적으로 호출되고 갤러리가 업데이트됩니다.

이 제한 사항을 해결하려면 화면의 OnVisible 속성에 변수를 사용하고 저장 프로시저를 변수로 설정하세요.

Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

그런 다음 갤러리의 'Items' 속성을 변수 이름으로 설정합니다.

SP_Books

그런 다음 저장 프로시저를 호출하여 레코드를 생성, 업데이트 또는 삭제한 후 변수를 다시 설정하십시오. 그러면 갤러리가 업데이트됩니다.

Paruntimedb.dbonewlibrarybook({   
  book_name: DataCardValue3_2.Text, 
  author: DataCardValue1_2.Text,
    ...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

알려진 문제점

SQL 데이터 원본이 더 이상 데이터 원본 이름에 [dbo] 접두사를 추가하지 않음

[dbo] 접두사는 데이터 원본 이름이 자동으로 명확해지기 때문에 Power Apps에서 실제적인 목적을 제공하지 않습니다. 기존 데이터 원본은 이 변경의 영향을 받지 않지만 새로 추가된 SQL 데이터 원본에는 접두사가 포함되지 않습니다.

앱 중 하나에서 많은 수의 수식을 업데이트해야 하는 경우Power Apps 원본 파일 압축 및 압축 해제 유틸리티 전역 검색 및 바꾸기를 수행하는 데 사용할 수 있습니다.

참고

버전 3.21054부터는 데이터 원본을 읽은 후 깨진 레거시 이름 참조를 새로운 데이터 원본 이름으로 자동 업데이트합니다.

다음 단계

참고

귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)

이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).