2014-03-12 4 views
5

Ich verstehe den Fehler und wie zu beheben Ich bin nur daran interessiert, das Feld zu beheben. Lassen Sie mich von oben beginnen. Ich führe täglich eine geplante Aufgabe aus, die einen Prozess ausführt, der an einigen Punkten einige Sprocs in SQL ausführt, die Insert-Anweisungen ausführen. Leider bekomme ich nach dem Überprüfen meiner Logs den Fehler und daher funktionieren meine Sprocs nicht. Ich könnte jedes Feld auf eine größere Länge aktualisieren und das würde es wahrscheinlich beheben, aber ID eher nicht. Gibt es eine Möglichkeit, das Feld, das den Wert enthält, der für das Feld, in das es eingefügt wird, zu groß ist, zu kennen (ohne manuell zu überprüfen, da viele Felder und Tausende von Zeilen vorhanden sind)?String oder binäre Daten würde abgeschnitten werden, Feld finden

+0

würde SQL Profiler geben Sie einen Hinweis, welche Sproc gibt Ihnen einen Fehler und welche Art von Fehler? – jyrkim

+0

Es könnte tun, aber ich weiß, welche Sproc ist fehlerhaft und was der Fehler ist, ist das Feld, das es verursacht, die ein Schmerz ist – Srb1313711

+1

Upvote dieses Microsoft Connect-Ticket, um Microsoft zu ermutigen, diese Fehlermeldung zu verbessern, damit wir zumindest wissen, welches Feld Länge wurde überschritten: https://connect.microsoft.com/SQLServer/feedback/details/339410/ –

Antwort

9

Importieren Sie die Daten in eine neue Tabelle mit VARCHAR(MAX) als datatype für die Spalten. Dann können Sie DATALENGTH verwenden, um die maximale Größe jeder Spalte zu erhalten.

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

Dies wird Ihnen sagen, welche Spalte (n) die Größe Ihrer Spalte (n) überschreiten.

+0

Danke das war wirklich hilfreich – Srb1313711

Verwandte Themen