Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln ingår rekommendationer för att definiera tabelldatatyper i en dedikerad SQL-pool.
Datatyper som stöds
Dedikerad SQL-pool (tidigare SQL DW) stöder de vanligaste datatyperna. En lista över de datatyper som stöds finns i datatyper i CREATE TABLE-instruktionen.
Minimera radlängd
Om du minimerar storleken på datatyper förkortas radlängden, vilket ger bättre frågeprestanda. Använd den minsta datatypen som fungerar för dina data.
- Undvik att definiera teckenkolumner med en stor standardlängd. Om det längsta värdet till exempel är 25 tecken definierar du kolumnen som VARCHAR(25).
- Undvik att använda NVARCHAR när du bara behöver VARCHAR.
- Om möjligt använder du NVARCHAR(4000) eller VARCHAR(8000) i stället för NVARCHAR(MAX) eller VARCHAR(MAX).
Om du använder externa PolyBase-tabeller för att läsa in dina tabeller får den definierade längden på tabellraden inte överstiga 1 MB. När en rad med variabellängdsdata överskrider 1 MB kan du läsa in raden med BCP, men inte med PolyBase.
Identifiera datatyper som inte stöds
Om du migrerar databasen från en annan SQL-databas kanske du hittar datatyper som inte stöds i en dedikerad SQL-pool. Använd följande fråga för att identifiera datatyper som inte stöds i ditt befintliga SQL-schema:
SELECT t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables t
JOIN sys.columns c on t.[object_id] = c.[object_id]
JOIN sys.types y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
AND y.[is_user_defined] = 1;
Lösningar för datatyper som inte stöds
I följande lista visas de datatyper som den dedikerade SQL-poolen (tidigare SQL DW) inte stöder och ger användbara alternativ för datatyper som inte stöds.
| Datatypen stöds inte | Omgångslösning |
|---|---|
| geometry | varbinary |
| geografi | varbinary |
| hierarchyid | nvarchar(4000) |
| bild | varbinary |
| text | varchar |
| ntext | nvarchar |
| sql_variant | Dela upp kolumnen i flera starkt skrivna kolumner. |
| tabell | Konvertera till temporära tabeller. |
| Tidsstämpel | Omarbeta kod för att använda datetime2 och funktionen CURRENT_TIMESTAMP . Endast konstanter stöds som standardvärden, så current_timestamp kan inte definieras som standardvillkor. Om du behöver migrera radversionsvärden från en kolumn med tidsstämpeltyp, använder du BINARY(8) eller VARBINARY(8) för radversionsvärden som är NOT NULL eller NULL. |
| xml | varchar |
| användardefinierad typ | Konvertera tillbaka till den interna datatypen när det är möjligt. |
| Standardvärden | Standardvärden stöder endast literaler och konstanter. |
Nästa steg
Mer information om hur du utvecklar tabeller finns i Tabellöversikt.