Problema tipi di dati SQL Server 2000
paaol
paaol non è online. Ultima attività: 03/01/2009 12.17.44paaol
il 2 dicembre 2008 alle 13.01
10 messaggi dal 02 dicembre 2008
Salve a tutti,
in una tabella di un database SQL SERVER 2000, per problemi di lunghezza delle stringhe da inserire, ho dovuto cambiare il tipo di un campo 'NVARCHAR' (max 4000 unicode) in 'VARCHAR' (max 8000).
Ho fatto un ALTER TABLE da SQL Query Analizer e compare il Warning:

- Avviso: tabella 'CONTACTS' creata ma le dimensioni max. di riga (10352) sono superiori al numero max. di byte per riga (8060). Le operazioni INSERT o UPDATE su una riga della tabella avranno esito negativo se la lunghezza risultante è maggiore di 8060 byte.

A quali problemi potrei andare incontro inserendo o modificando nuovi dati ?
Eventualmente esiste un settaggio per risolvere questo problema ?


Vi ringrazio anticipatamente.
Microsoft Most Valuable Professional
RE: Problema tipi di dati SQL Server 2000
Andrea Montanari
Andrea Montanari non è online. Ultima attività: 03/07/2009 18.17.01Andrea Montanari Top Poster
il 3 dicembre 2008 alle 01.16
Contributi | www.asql.biz | 1.134 messaggi dal 27 luglio 2005
salve
paaol ha scritto:
Salve a tutti,
in una tabella di un database SQL SERVER 2000, per problemi di lunghezza delle stringhe da inserire, ho dovuto cambiare il tipo di un campo 'NVARCHAR' (max 4000 unicode) in 'VARCHAR' (max 8000).
Ho fatto un ALTER TABLE da SQL Query Analizer e compare il Warning:

- Avviso: tabella 'CONTACTS' creata ma le dimensioni max. di riga (10352) sono superiori al numero max. di byte per riga (8060). Le operazioni INSERT o UPDATE su una riga della tabella avranno esito negativo se la lunghezza risultante è maggiore di 8060 byte.

A quali problemi potrei andare incontro inserendo o modificando nuovi dati ?
Eventualmente esiste un settaggio per risolvere questo problema ?


Vi ringrazio anticipatamente.

in SQL Server 2000, la massima allocazione per ogni riga, come gia' il warning ti ha indicato, e' di 8060 bytes...
cio' non toglie che sia possibile definire gli attributi in modo che, potenzialmente, tale limite venga superato.. in questo caso ti verra' sollevato il warning da te riportato..

supponiamo tu abbia una tabella come
CREATE TABLE xxx (
colPk int PRIMARY KEY,
col1 vachar(5000),
col2 varchar(8000)
);

la somma delle dimensioni delle colonne eccede il limite indicato..
qualora tu inserisca righe come
INSERT xxx VALUES ( 1, REPLICATE('x', 3000), REPLICATE('y', 5000) );
INSERT xxx VALUES ( 2, REPLICATE('x', 10), REPLICATE('y', 8000) );
INSERT xxx VALUES ( 3, REPLICATE('x', 5000), REPLICATE('y', 3000) );

non avrai alcun problema, in quanto cio' che tu andrai a serializzare rientra nel limite massimo consentito.. quando invece, sia con una modifica che con un nuovo inserimento, tale limite sara' ecceduto, l'operazione non andra' a buon fine, come nel caso di

INSERT xxx VALUES ( 4, REPLICATE('x', 5000), REPLICATE('y', 4000) );
UPDATE xxx
SET col1 = REPLICATE('x', 1000)
WHERE colPk = 2;

di nuovo.. fino a che non eccedi in inserimento/aggiornamento il limite indicato, non avrai alcun problema.

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de
RE: Problema tipi di dati SQL Server 2000
paaol
paaol non è online. Ultima attività: 03/01/2009 12.17.44paaol
il 10 dicembre 2008 alle 11.13
10 messaggi dal 02 dicembre 2008
Ciao Andrea,
grazie 1000 per il consiglio.
Mi hai risolto un bel problema

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9