Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Memperbaiki "Konversi gagal saat mengonversi nilai ke tipe data" di SQL Server

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!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Panduan pemula untuk tabel SQL

  2. Gunakan DB_ID() untuk Mengembalikan ID Database di SQL Server

  3. Cari semua tabel, semua kolom untuk nilai tertentu SQL Server

  4. Cara membuat skrip untuk membuat Ulang Batasan Kunci Asing di Database SQL Server - Tutorial SQL Server / TSQL Bagian 73

  5. Menggunakan Ekspresi CASE di SQL Server