Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Disertakan dalam artikel ini adalah rekomendasi untuk menentukan jenis data tabel di kumpulan SQL khusus.
Jenis data yang didukung
Kumpulan SQL khusus (sebelumnya SQL DW) mendukung jenis data yang paling umum digunakan. Untuk daftar jenis data yang didukung, lihat jenis data dalam pernyataan CREATE TABLE.
Meminimalkan panjang baris
Meminimalkan ukuran jenis data memperpendek panjang baris, yang mengarah ke performa kueri yang lebih baik. Gunakan jenis data terkecil yang berfungsi untuk data Anda.
- Hindari menentukan kolom karakter dengan panjang default yang besar. Misalnya, jika nilai terpanjang adalah 25 karakter, maka tentukan kolom Anda sebagai VARCHAR(25).
- Hindari menggunakan NVARCHAR saat Anda hanya memerlukan VARCHAR.
- Jika memungkinkan, gunakan NVARCHAR(4000) atau VARCHAR(8000) alih-alih NVARCHAR(MAX) atau VARCHAR(MAX).
Jika Anda menggunakan tabel eksternal PolyBase untuk memuat tabel Anda, panjang baris tabel yang ditentukan tidak boleh melebihi 1 MB. Saat baris dengan data panjang variabel melebihi 1 MB, Anda dapat memuat baris dengan BCP, tetapi tidak dengan PolyBase.
Mengidentifikasi jenis data yang tidak didukung
Jika Anda memigrasikan database dari database SQL lain, Anda mungkin menemukan jenis data yang tidak didukung di kumpulan SQL khusus. Gunakan kueri berikut untuk menemukan tipe data yang tidak didukung dalam skema SQL yang sudah ada:
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;
Solusi untuk tipe data yang tidak didukung
Daftar berikut menunjukkan jenis data yang tidak didukung kumpulan SQL khusus (sebelumnya SQL DW) dan memberikan alternatif yang berguna untuk jenis data yang tidak didukung.
| Tipe data yang tidak didukung | Penanganan masalah |
|---|---|
| geometry | varbinary |
| geografi | varbinary |
| hierarchyid | nvarchar(4000) |
| gambar | varbinary |
| text | varchar |
| ntext | nvarchar |
| sql_variant | Pisahkan kolom menjadi beberapa kolom yang ditik dengan kuat. |
| tabel | Konversi ke tabel sementara. |
| timestamp | Ubah kode untuk menggunakan datetime2 dan fungsi CURRENT_TIMESTAMP. Hanya konstanta yang didukung sebagai default, sehingga current_timestamp tidak dapat didefinisikan sebagai batasan default. Jika Anda perlu memigrasikan nilai versi baris dari kolom bertipe timestamp, gunakan BINARY(8) atau VARBINARY(8) untuk nilai versi baris NOT NULL atau NULL. |
| xml | varchar |
| jenis yang ditentukan pengguna | Konversi kembali ke jenis data asli jika memungkinkan. |
| nilai default | Nilai default hanya mendukung literal dan konstanta. |
Langkah berikutnya
Untuk informasi selengkapnya tentang mengembangkan tabel, lihat Gambaran Umum Tabel.