Sql error: “Cannot create a row of size 8160 which is greater than the allowable maximum of 8060″
Ogni giorno se ne impara una nuova. Con Sql server l’incubo tipico è quello delle date, ma oggi la mia seconda preoccupazione, quella dei campi varchar molto lunghi è salita alla ribalta. Tutto nasce dal fatto che i campi di tipo Text sono un problema non indifferente a causa della più difficile gestione rispetto ai campi Varchar. Per questo motivo spesso si creano tabelle (nel mio caso era una tabella temporanea) con campi di tipo Varchar di grandi dimensioni (nel mio caso era 8000 caratteri). E fin qui fila tutto liscio perchè Sql Server non da nessun errore e gestisce questo genere di campi. Il problema sorge non appena si vanno a riempire con dei dati. Le colonne hanno lunghezza variabile (VARchar) e Sql Server ha un limite in Byte sulla lunghezza di ogni singola riga che è pari a 8060 Bytes. Se questo valore è superato scatta l’errore. Ovviamente come tutti gli errori di dati è molto più difficile da scovare e anche il messaggio non è così parlante. La soluzione è quella di usare campi Text (con tutto quello che comporta) al posto dei Varchar troppo grandi. Riassumendo se avete una tabella con una o più colonne ad esempio di tipo Varchar(8000) è molto probabile che presto il vostro sistema smetterà di funzionare. Dba avvisato…
Filed under: Sql, Ms Sql Server, Database, Microsoft
