Konfiguracja
Używam kilku tabel pamięci do przechowywania danych w pamięci podręcznej dla mojej witryny. Jest to lokalny hostingowego na moim Macu i serwer dev na Linux przy użyciu biblioteki php mssql na PHP 5.5Dlaczego SQL Server wybrać zapytanie obcięcie łańcucha Varchar?
Uproszczona tabela wygląda następująco:
CacheID INT NOT NULL
CacheData VARCHAR(MAX)
ja czasami wstawić kilka dużych wartości. Ponad 10 000 znaków. Wkładka działa dobrze. Proste zapytanie mówi mi wszystkie dane w polu:
SELECT
CacheID,
LEN(CacheData)
FROM Caches
Problem
Jednak, kiedy rzeczywiście wybrać dane kolumna cache
zawsze obcinane do 8192 znaków powoduje problemy. Prosty wybór:
SELECT
CacheData
FROM Caches
WHERE CacheID = 10
Sprawdziłem limit znaków varchar (max). I to jest dobrze poza 8192. 2^32 - 1
Kwestia
Dlaczego dane są obcinane?
Pytanie w innej formie. Właściwie to spotkałem się z tym agianem i zapomniałem o tym rozwiązaniu. Trochę mnie to przypominało, bo zapomniałem o podstawowej przyczynie. Oto, co szukałem myśląc, że SQL Server był winowajcą.
Co to jest maksymalna długość serwera SQL Server Varchar (MAX)? - Jeśli twoje wartości są obcięte prawdopodobnie spowodowane przez serwer php non sql. Jeśli po prostu chcesz wiedzieć, co max to, że pytanie jest tutaj: Maximum size of a varchar(max) variable