Vorrei sapere qual è la dimensione massima di varchar
in SQL Server 2000. Mentre cercavo su Google da qualche parte, sono stati scritti 8000 caratteri e da qualche parte sono stati scritti 8060 byte. Quale è corretto?Dimensioni massime di varchar (max) in SQL Server 2000
risposta
Per quanto mi ricordo sono 8000 caratteri.
Per Nvarchar è 4000.
Varchar è 8000 ed è nvarchar 4000.
Ecco il riferimento varchar MSDN:
http://msdn.microsoft.com/en-us/library/aa258242(SQL.80).aspx
È 8000 caratteri = 8000 byte in sqL ???? – Kumar
@Kumar: sì, per VARCHAR, 1 carattere = 1 byte; per NVARCHAR, 1 carattere = 2 byte –
È un po 'più complicato di così. La versione breve è che varchar e nvarchar non usano lo spazio finché non si mettono effettivamente i dati lì. –
La dimensione massima di varchar (max) è di grandi dimensioni (2 GB o 2 Gcar, penso). Il valore massimo che è possibile specificare per n in varchar (n) è 8000 e per nvarchar è 4000.
Nessun varchar (max) in SQL 2000 – MartW
Hai ragione, ma la domanda è nullo. La seconda parte della mia risposta contiene ancora – erikkallen
Una pagina dati di SQL Server ha 8k: 8192 byte. Da questo una parte è riservata per l'intestazione della pagina, lasciando 8060 byte il lnegth massimo che una singola riga può avere. In una riga, i tipi varbinary (n), varchar (n) e nvarchar (n) non possono superare 8000 byte, il che significa che varchar (8000) è la lunghezza massima di Ascii e nvarchar (4000) è la lunghezza massima Unicode (da Unicode memorizza ogni carattere su 2 byte).
La migliore spiegazione di tutti questi dettagli proviene da Inside the Storage Engine: Anatomy of a page.
+1 Piccolo bocconcino: Unicode non memorizza ogni carattere in 2 byte. Questo dipende dalla codifica. UTF-8 e UTF-16 sono codifiche di lunghezza variabile, UTF-32 è l'unica dimensione fissa che io conosca. Esistono altre codifiche (UCS-2, UTF-7). Internamente, Microsoft utilizza in genere UTF-16, in cui la dimensione predefinita di un carattere è 2 byte. Questo vale per almeno tutti i prodotti basati su .NET e per SQL Server. – Abel
@abel: SQL Server [utilizza codifica UCS-2LE] (http://msdn.microsoft.com/en-us/library/ms189617 (v = sql.105) .aspx), che è esattamente 2 byte per carattere. Sono d'accordo anche se quel 'Unicode', come scritto nel post, non ha strettamente 2 byte per carattere. –
Sì, hai ragione su UCS-2, continuo a dimenticarlo, è uno dei miei difetti principali, in quanto consente solo i caratteri BMP. Tx per averlo indicato :) – Abel
- 1. varchar (max) MS SQL Server 2000, problemi?
- 2. differenza tra varchar (500) vs varchar (max) nel server sql
- 3. Varchar (255) a Varchar (MAX)
- 4. Conversione tra testo e varchar (MAX) in SQL Server
- 5. Change Data tipo varchar Per varbinary (max) In SQL Server
- 6. SQL Server 2000, sì 2000 hash password
- 7. T-SQL VARCHAR (MAX) troncata
- 8. SQL Server ROW_NUMBER() su SQL Server 2000?
- 9. Quanti caratteri in varchar (max)
- 10. sql server stored procedure usa varchar max come parametro
- 11. SQL 2008 - varchar (max) vs tipi di dati testo
- 12. SQL Server 2000 Delete Top (1000)
- 13. Dimensione massima di una variabile varchar (max)
- 14. Dimensioni massime per StringBuffer
- 15. SQL Server: conversione varchar in INT
- 16. Converti varchar a uniqueidentifier in SQL Server
- 17. Qual è l'equivalente Varchar (Max) per DB2?
- 18. SQL Server Converti Varchar in Datetime
- 19. T-SQL (varchar (max) vs CLR (stringa, SqlString, SqlChars)?
- 20. Dimensioni massime dell'area di disegno in JavaFX
- 21. SpooledTemporaryFile: unità di dimensioni massime (in memoria)?
- 22. Dimensioni massime per l'immagine di sfondo CSS
- 23. Max. Scalare nel server Sql
- 24. La colonna Varchar (max) non può essere una chiave primaria in SQL Server
- 25. Perché SQL Server seleziona query truncate stringa varchar?
- 26. Quale inserimento più veloce, campo XML o campo Varchar (max)?
- 27. REPLACE() senza maiuscole/minuscole in SQL Server 2000
- 28. SQL concatenazione Server varchar e int
- 29. SQL Server Management Studio mostra il contenuto completo del campo varchar (max)
- 30. Memorizzazione di virgolette singole in variabile varchar SQL Server 2008
È 8000 caratteri = 8000 byte in sqL ???? – Kumar
@Kumar: ** sì! ** Per 'varchar' è 1 carattere = 1 byte, per' nvarchar' è 1 carattere = 2 byte –