Power Apps에서 SQL Server에 연결하기
Azure 또는 온-프레미스 데이터베이스에서 SQL Server에 연결할 수 있습니다.
참고
새로 생성된 SQL 데이터 원본에는 이전 버전의 Power Apps처럼 더 이상 [dbo]
접두사가 붙지 않습니다.
자세한 내용은 Power Apps의 일반적인 문제 및 해결 방법을 참조하세요.
자동으로 앱 생성
사용 중인 Power Apps 인터페이스에 따라 새로운 디자인 또는 클래식 디자인 앱을 빌드합니다.
Power Apps에 로그인합니다.
홈 페이지에서 단일 페이지 갤러리 또는 세 화면 모바일 옵션 중 하나를 선택합니다.
- 반응형 레이아웃으로 단일 페이지 갤러리 앱을 만들려면 다음 중 하나를 선택합니다.
- 데이터로 시작 > 외부 데이터 선택 > SQL에서.
- 페이지 디자인으로 시작 > 외부 데이터에 연결된 갤러리 > SQL에서.
- 3개 화면 모바일 앱을 만들려면 앱 템플릿으로 시작 > SQL에서를 선택합니다.
- 반응형 레이아웃으로 단일 페이지 갤러리 앱을 만들려면 다음 중 하나를 선택합니다.
SQL 연결을 선택한 다음 테이블을 선택합니다. 다른 연결을 선택하려면 ... 오버플로 메뉴를 선택하여 연결을 전환하거나 새 SQL 연결을 생성하세요.
참고
한 번에 하나의 연결만 표시됩니다.
완료되면 앱 만들기를 선택합니다.
Power Fx에서 직접 저장 프로시저 호출(프리뷰)
SQL Server 저장 프로시저 프리뷰 스위치를 켜면 Power Fx에서 SQL Server 저장 프로시저를 직접 호출할 수 있습니다.
참고
출력 매개 변수는 지원되지 않습니다.
- 설정 > 예정된 기능 > 프리뷰로 이동합니다.
- 저장 프로시저를 검색하세요.
- SQL Server 저장 프로시저에 대해 토글을 켜짐으로 설정합니다.
- 앱을 저장하고 다시 엽니다.
앱에 SQL Server 연결을 추가하면 이제 테이블과 보기 또는 저장 프로시저를 추가할 수 있습니다. 이 기능은 보안 암시적 연결에서도 작동합니다.
저장 프로시저가 즉시 표시되지 않으면 검색하는 것이 더 빠릅니다.
저장 프로시저를 선택하면 하위 노드가 나타나고 해당 저장 프로시저를 갤러리 및 테이블에 사용하기에 안전함으로 지정할 수 있습니다. 이 옵션을 선택하면 앱에서 사용할 테이블 갤러리의 Items 속성으로 저장 프로시저를 할당할 수 있습니다.
다음과 같은 경우에만 이 옵션을 활성화하십시오.
- Power Apps가 컨트롤을 새로 고칠 때마다 요청 시 이 프로시저를 여러 번 호출해도 부작용이 없습니다. 갤러리 또는 테이블의 Items 속성과 함께 사용하면 Power Apps는 시스템에서 새로 고침이 필요하다고 판단할 때마다 저장 프로시저를 호출합니다. 저장 프로시저가 호출되는 시점을 제어할 수 없습니다.
- 저장 프로시저에서 반환하는 데이터의 양은 적당한 것입니다. 저장 프로시저와 같은 작업 호출에는 검색되는 행 수에 제한이 없습니다. 테이블이나 보기와 같은 테이블 형식 데이터 원본처럼 100개의 레코드 증분 단위로 자동으로 페이징되지 않습니다. 따라서 저장 프로시저가 너무 많은 데이터(수천 개의 레코드)를 반환하면 앱 속도가 느려지거나 충돌이 발생할 수 있습니다. 성능상의 이유로 2,000개 미만의 레코드를 가져와야 합니다.
중요
저장 프로시저의 반환 값 스키마는 정적이어야 합니다. 이는 통화마다 변경되지 않음을 의미합니다. 예를 들어 저장 프로시저를 호출하여 두 개의 테이블을 반환하는 경우 항상 두 개의 테이블을 반환해야 합니다. 결과의 스키마가 동적이면 Power Apps과 함께 사용하면 안 됩니다. 예를 들어 저장 프로시저를 호출하여 때로는 하나의 테이블을 반환하고 때로는 두 개의 테이블을 반환하는 경우 Power Apps에서는 올바르게 작동하지 않습니다. Power Apps에는 이 호출에 대한 정적 스키마가 필요합니다.
예
저장 프로시저를 추가하면 프로젝트에 데이터 원본이 두 개 이상 표시될 수 있습니다.
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분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).
피드백
https://aka.ms/ContentUserFeedback을 참조하세요.
출시 예정: 2024년 내내 콘텐츠 피드백 메커니즘인 GitHub 문제를 단계적으로 폐지하고 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은다음에 대한 사용자 의견 제출 및 보기