Setup
Sto utilizzando diverse tabelle di memoria per memorizzare i dati sul mio sito web. Si tratta di un host web locale sul mio mac e un server dev su Linux utilizzando libreria PHP mssql su PHP 5.5Perché SQL Server seleziona query truncate stringa varchar?
Una tabella semplificata assomiglia:
CacheID INT NOT NULL
CacheData VARCHAR(MAX)
tanto in tanto inserisco diversi valori di grandi dimensioni. Oltre 10.000 caratteri. L'inserto funziona bene. Una semplice query mi dice tutti i dati sono nel campo:
SELECT
CacheID,
LEN(CacheData)
FROM Caches
Problema
Tuttavia, quando ho effettivamente selezionare i dati della colonna cache
è sempre troncato a 8192 caratteri causando problemi. Semplice selezione:
SELECT
CacheData
FROM Caches
WHERE CacheID = 10
Ho controllato il limite di caratteri varchar (max). Ed è ben oltre 8192. 2^32 - 1
La domanda
motivi per cui si i dati troncato?
La domanda in un altro formato. In realtà mi sono imbattuto in questo agian e ho dimenticato questa soluzione. Mi ci è voluto un po 'per ricordare come ho dimenticato la causa principale. Ecco cosa ho cercato pensando che SQL Server era il colpevole.
Qual è la lunghezza massima di SQL Servers Varchar (MAX)? - Se i tuoi valori vengono troncati probabilmente è causato da php non sql server. Se si vuole solo sapere qual è il massimo è, la domanda si risponde qui: Maximum size of a varchar(max) variable