Welcome to Sign in | Help
in Search

problema la crearea unui tabel

Last post 11-04-2008, 2:49 PM by ignatandrei. 2 replies.
Sort Posts: Previous Next
  •  11-04-2008, 2:01 PM 6035

    problema la crearea unui tabel

    A trebuit la servici sa rulez un script care creaza un tabel si dupa crearea tabelului apare:
    warning: The table 'numetabel'  has been created but is maximum row size 8393 exceeds the maximum number of bytes per row 8060. Insert or update of a row in this table will fail if the resulting row length exceeds 8060 bytes.
     
    Seful meu ma intreaba cum poate fi rezolvata aceasta problema. Tabelul e facut de firma care a facut produsul eu nu am dreptul sa-l modific. Ce se poate face? E vorba de Sql Server 2000.
     
    Am vorbit cu Gigi Ciubuc care mi-a spus urmatoarele:
    1.Din ce stiu eu si ce vad pe net e cred ca trebuie sa fie normalizata schema in sensul urmator:
    - sau se regandeste dimensiunea datelor astfel ca sa nu depaseasca 8060
    -sau se sparge tabela in 2 tabele cu relatia 1:1
    2.Daca e sql 2005 ar putea modifica in varchar(max) , sau text ambele campuri ; ambele pot tine pana la 2 Gb; sql -ul are un mecanism prin care gestioneaza surplusul asta de informatie
     
    Mai are cineva vreo solutie?
    Multumesc mult
  •  11-04-2008, 2:14 PM 6038 in reply to 6035

    Re: problema la crearea unui tabel

    Cauza mesajului este ca tabela are cimpuri cu lungime variabila care, daca toate sint updatate cu valori la lungime maxima au in total mai mult decit 8060 bytes. Faptul ca pot depasi lungimea maxima de 8060 nu inseamna ca-l vor si depasi. Deoarece este o tabela a unei aplicatii facute de un tert, este raspunderea acelei aplicatii sa nu insereze date mai lungi de 8060. Daca va incerca, va rezulta in eroare la insert.

    Ce poti face este sa contactezi producatorul aplicatiei si sa-i ceri sa-tzi garanteze ca aplicatia nu insereaza date mai lungi de 8060. Daca ei nu pot garanta, atunci ai doua optiuni:
    1) Interzici aplicatia in productie
    2) Permiti aplicatia, dar daca exista erori de rulare a aplicatiei din cauza ca se fac insert-uri peste 8060 atunci ... asta e, exista erori in aplicatie.

    Atita vreme cit nu ai dreptul sa modific tabela, nu ai alte optiuni.
    Daca firma terta care a facut aplicatie e cit de cit serioasa, atunci stie ca exista aceasta problema si posibil sa poata garanta ca nu se insereaza niciodata peste 8060 bytes, de exemplu cimpurile celea lungi nu pot avea valori simultan.

    Daca terta firma nu poate garanta, tabela nu se poate modifica si seful i-tzi cere sa semnezi... probabil seful cauta un tap ispasitor pentru cind or sa apare problemele. Updateza-tzi CV-ul.

    http://rusanu.com
  •  11-04-2008, 2:49 PM 6044 in reply to 6035

    Re: problema la crearea unui tabel

    vezi si
    http://sqlserver.ro/forums/permalink/6042/6037/ShowThread.aspx#6037

    si data viitoare, please , pune pe un singur forum...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems