2013-01-25 3 views
14

Inserendo dati in un database Microsoft SQL Server utilizzando Java, ho ricevuto un'eccezione di troncamento SQL. Ma l'eccezione non mostra quale colonna ha il valore del problema.Come vedere in quale colonna è stato eseguito il troncamento dei dati

C'è un modo per trovare i dettagli dell'errore, ad esempio da SQL Server Management Studio?

Nota: sto utilizzando il database SQL Server in Windows.

+0

Grazie Crowder. Solo il suo server SQL. – Rajasekhar

risposta

11

Sfortunatamente, no. Il messaggio di errore è il numero di informazioni che SQL Server ti darà.

Per scoprire quali valori in quali colonne di quali righe sono in errore, è necessario analizzare i dati. Un approccio comune alla scoperta di questo tipo di problema consiste nell'eseguire binari: rimuovere metà dei dati o metà delle colonne, tentare nuovamente l'inserimento (possibilmente in una tabella temporanea con la stessa struttura della tabella reale) e vedere se l'errore ricorre.

Se lo fa, grande, almeno un problema è nei dati che rimane. In caso contrario, hai eliminato metà dei dati perché non causa alcun problema.

+0

Java sta stampando "java.sql.DataTruncation: troncamento dei dati e traccia dello stack". Ma non fornisce ulteriori dettagli su quali dati o colonne sono stati troncati. – Rajasekhar

+1

@Rajasekhar - Come ho detto, non c'è più aiuto fornito da SQL Server quando questo accade - è necessario cercare i dati che causano l'errore. Come ho anche detto, un modo comune per tentare di individuarlo è quello di tagliare la quantità di dati coinvolti a metà (rimuovendo colonne o rimuovendo righe) e vedendo se si ottiene ancora l'errore –

+0

Grazie per il suggerimento. – Rajasekhar