Anslut till SQL Server från Power Apps – översikt

Det finns olika sätt att ansluta till data i SQL Server i din app med hjälp av Power Fx-formler. Du kan komma åt data direkt eller använda en vy eller lagrade procedurer för att skapa, uppdatera eller ta bort data i din app.

Förutsättningar

Om du vill komma åt data direkt kan du skapa en Börja med data-app för dina SQL Server-data. Med den här metoden kan du få en grundläggande, fungerande app som du kan ändra med vyer och lagrade procedurer.

  1. Logga in i Power Apps och gå till sidan Appar.

  2. Välj Ny app>Börja med data.

    Skärmbild som visar hur du skapar en app genom att börja med data under menyn Ny app.

  3. På sidan Börja med data väljer du Anslut externa data.

  4. Under Välj en datauppsättning för att starta väljer du Från SQL.

    Om du har en befintlig SQL Server-anslutning läses den in.

    Obs

    Om du inte redan har en SQL Server-anslutning skapad kommer du att uppmanas att skapa en.

  5. Välj din SQL-anslutning.

  6. Ange ditt servernamn och databasnamn och välj Anslut. Välj en tabell i listan med tabeller som visas.

    Skärmbild som visar sidan Skapa en app där du kan välja en SQL Server-anslutning, inklusive en tabell.

    Obs

    Endast en anslutning visas åt gången. Om du vill använda en annan anslutning väljer du spillmenyn ... på din SQL-anslutning och letar sedan upp en ny eller skapa en ny SQL-anslutning.

  7. Välj Skapa app.

Åtkomst till data

När din app är ansluten till SQL Server kan du komma åt data: Få åtkomst till data i SQL Server.

Visa resultat

Om du vill visa resultatet av dina SQL-frågor, se: Visa resultat i SQL Server.

Power Apps mappningar av datatyp

SQL Server Power Apps
bigint, decimal, int, money, numeric, smallint, , smallmoney, tinyint, , floatreal Nummer
char, nchar, varchar, nvarchar, textntext Text
bit Boolean
date, datetime, datetime2, smalldatetime, datetimeoffsettime DateTime
uniqueidentifier Guide

Obs

Om en SQL Server-datatyp inte visas i föregående tabell stöds inte den datatypen. Datatyper som inte stöds innehåller följande exempel: binary(), varbinary(), image, cursor, rowversion, hierarchyid, , sql_variant xmlRumsliga geometrityper, Typer av rumslig geografi och tabell. Dessutom stöds inte "tinyint" och "smallint" som primära nycklar.

Power Apps-funktioner och åtgärder som kan delegeras till SQL Server

Power Apps kan delegera Power Fx-frågeåtgärder (till exempel Filter) till serverdelsdatakällan för bearbetning. Med delegering kan serverdelsdatatjänsten (till exempel SQL Server) utföra filtreringen så att endast ett fåtal poster måste överföras till enheten.

Den här tabellen visar vilka åtgärder som kan delegeras till SQL Server efter datatyp. Uttryck som är kopplade till And, Oroch Not är delegerbara.

Åtgärd eller funktion Nummer Text Boolean DateTime Guide
*, +, -, / Yes - - Nej -
<, <=, , >>= Yes Nej Nej Yes -
=, <> Yes Yes Yes Yes Yes
Average Yes - - - -
EndsWith - Ja [1] - - -
Filter Yes Yes Yes Ja [2] Yes
In (delsträng) - Ja [3] - - -
IsBlank [4] Nej Nej Nej Nej Nej
Len (längd) - Ja [5] - - -
Lookup Yes Yes Yes Yes Yes
Max Yes - - Nej -
Min Yes - - Nej -
Search Nej Yes Nej Nej -
Sort Yes Yes Yes Yes -
SortByColumns Yes Yes Yes Yes -
StartsWith - Ja [6] - - -
Sum Yes - - - -
UpdateIf, RemoveIf [7] Yes Yes Yes Yes Yes

Noteringar

  1. Stöds för (EndsWith(\<column>, "string value")) men inte för (EndsWith("string value", \<column>)). Om en teckenkolumn (10) har värdet "hello" EndsWith(\<column>, "llo") returnerar den falskt, avsiktligt. En teckenkolumn (10) har 10 tecken.

  2. Direktdatumfilter fungerar inte för SQL Server med en lokal datagateway. Du kan dock skapa en beräknad kolumn som fungerar. Du kan till exempel skapa:
    ALTER TABLE myTable ADD DateAsInt AS (YEAR([date]) * 10000 + MONTH([date]) * 100 + DAY([date]))
    Och filtrera sedan på den beräknade talkolumnen.

  3. Stöds för ("string value" in \<column>), men inte för (\<column> in "string value").

  4. Ett uttryck som Filter('[dbo].[MyOrders]', !IsBlank(CustomerId)) delegerar inte till servern. Du kan dock använda ett uttryck som Filter('[dbo].[MyOrders]', CustomerId <> Blank()), som delegerar till servern och är semantiskt nära. Skillnaden är att det andra uttrycket inte behandlar den tomma strängen ("") som tom. Även om uttrycken inte är likvärdiga kan det senare fungera för dina syften. Du kan inte använda den här metoden för Guid-datatypen.

  5. Power Apps delegerar Len funktionen, men beteendet kanske inte fungerar som förväntat. I SQL Server har en teckenkolumn (10) med värdet "hello" alltid en längd på 10. Power Apps behandlar dock strängen som en längd på 5, vilket kan orsaka avvikelser och förvirring. Använd inte char/nchar på SQL Server, utan använd varchar/nvarchar i stället.

  6. Stöds för (StartsWith(\<column>, "string value")), men inte för (StartsWith("string value", \<column>))

  7. UpdateIf och RemoveIf fungerar lokalt men simulerar delegering till en gräns på 500/2000 poster. De tar successivt ned poster utöver postgränsen för icke-delegering 500/2000. Poster som uppfyller villkoret If samlas in. I allmänhet samlas högst 500/2000 poster in separat och ändras sedan per körning. Fler poster kan dock uppdateras om den befintliga lokala datacachen är stor eftersom funktionen kan ha åtkomst till fler poster för utvärdering.