Pertanyaan String atau data biner akan terpotong, ditemukan di lapangan


Saya memahami kesalahan dan cara memperbaikinya Saya hanya tertarik untuk mencari bidang yang akan diperbaiki. Biarkan saya mulai dari atas. Saya menjalankan tugas yang dijadwalkan setiap hari yang menjalankan proses yang pada beberapa titik menjalankan beberapa sprocs di sql yang menjalankan pernyataan insert. Sayangnya setelah memeriksa log saya, saya mendapatkan kesalahan tersebut dan karena itu sprocs saya tidak berfungsi. Saya bisa memperbarui setiap bidang ke panjang yang lebih besar dan ini mungkin akan memperbaikinya tetapi bukan id. Apakah ada cara mengetahui (tanpa memeriksa secara manual karena ada banyak bidang dan ribuan baris) bidang yang berisi nilai yang terlalu besar untuk bidang yang sedang dimasukkan ke dalamnya?


5
2018-03-12 15:42


asal


Jawaban:


Impor data ke tabel baru menggunakan VARCHAR(MAX) sebagai datatype untuk kolom. Maka Anda bisa menggunakannya DATALENGTH untuk mendapatkan ukuran maksimum setiap kolom.

SELECT MAX(DATALENGTH(col1)) AS col1, MAX(DATALENGTH(col2)) AS col2, etc.
  FROM newTable

Ini akan memberi tahu Anda kolom mana yang melebihi ukuran kolom Anda.


9
2018-03-12 15:45