Kesalahan SQL Server Msg 245, Level 16 memberi tahu kami bahwa ada masalah saat mencoba mengonversi nilai ke tipe data tertentu.
Anda akan mendapatkan kesalahan ini jika mencoba memasukkan tipe data yang salah ke dalam kolom.
Untuk memperbaiki masalah ini, pastikan tipe data dari nilai yang Anda coba masukkan, cocok dengan tipe kolom.
Contoh Kode Masalah
Berikut adalah contoh kode yang menghasilkan kesalahan ini.
INSERT INTO Orders(OrderId, OrderDate, OrderDesc)
VALUES ('2020-04-02', '2020-04-02', 'Dog food');
Hasil:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value '2020-04-02' to data type int.
Dalam hal ini saya mencoba memasukkan tanggal ke dalam OrdersId
kolom. Kita dapat mengasumsikan melalui pesan kesalahan bahwa kolom ini adalah int kolom, tapi kita harus memverifikasi itu.
Jika kita melihat definisi tabel, kita dapat melihat OrderId
jenis kolom:
CREATE TABLE Orders (
OrderId int NOT NULL,
OrderDate date NOT NULL,
OrderDesc varchar(255) NOT NULL,
CONSTRAINT PKOrders PRIMARY KEY CLUSTERED(OrderId, OrderDate)
);
Seperti yang diharapkan, OrderId
kolom adalah int kolom.
Solusi
Untuk mengatasi masalah ini, kita perlu memastikan bahwa kita memasukkan nilai yang benar. Kita juga perlu memastikan bahwa definisi tabel sesuai untuk data yang perlu disimpan. Ini akan membantu menegakkan integritas data database kami.
Dalam kasus kami, tipe data kolom sudah benar. Masalah ini disebabkan karena mencoba memasukkan data yang salah secara tidak sengaja.
Oleh karena itu, untuk memperbaiki masalah ini, kita dapat mengubah INSERT
pernyataan untuk memasukkan data yang benar.
INSERT INTO Orders(OrderId, OrderDate, OrderDesc)
VALUES (1, '2020-04-02', 'Dog food');
Hasil:
(1 row affected)
Sukses!