Hej! Vad du måste göra är att se till att kolumnerna du ska sortera på inte är så breda, dvs inte innehåller så mycket data. Jag antar att du har ett par stora kolumner med strängdata, typ varchar(8000), som alla är med i ORDER BY-klausulen. För att utföra sorteringen behöver SQL Server skapa en temporär tabell att mellanlagra i. Den kan naturligtvis inte lagra mer än 8060 bytes (+- lite beroende på datan), precis som vilken tabell som helst. Därför uppstår detta felet. Det är sant, men hur gör jag om jag vill ha med mina kolumner ändå. Jag har exempelvis: Din fråga är ungefär som att fråga: Jag vet att man inte kan bygga ett hus med bara senap, men om jag vill göra det ändå - hur gör jag? Om sortering inte ska göras på den kolumnen och prestanda inte är kritiskt så borde det gå att byta till datatypen Text istället. De andra som skriver här har helt rätt i vad de skriver. Om du dock ändå vill fortsätta så föreslår jag att du "klipper" din pm-kolumn till ett färre antal teckan mha left-funktionen. Exempelvis "order by left(pm, 6000)". Detta gör i och för sig att två strängar som har 6000 identiska tecken kan bli felsorterade.Cannot sort a row of size and ORDER BY
Jag har ett problem som någon kanske kan hjälpa mig att komma runt.
Jag får fel när jag ska sortera en Sql-fråga.
Cannot sort a row of size 11235, which is greater than the allowable maximum of 8094.
Jag vet att det finns en begränsning i ORDER BY och SQL SERVER, den som är intressrad kan läsa mer här: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_9sfo.asp#_order_by_clause
Så frågan är vad man kan göra? Någon som har bra tips?Sv: Cannot sort a row of size and ORDER BY
Sv:Cannot sort a row of size and ORDER BY
select id, header, pm, publish from tbl_news where category=3 order by publish, header
pm = varchar 8000
hur gör jag då för att undvika "Cannot sort a row size..."
jag måste ha med Order By och jag kan inte plocka bort eller förminska något i select satsen.Sv: Cannot sort a row of size and ORDER BY
Du har helt rätt detta är en BEGRÄNSNING i SQL Server. Begränsning innebär att det är en sak som inte funkar. Du gör en för "bred" select för att den skall kunna sorteras. Man kan inte sortera på alla datatyper, dessutom kan inte sorterinagr ske på resultatset som blir för stora.
Första frågan: Vad är publish (och de andra) för datatyp. Om den är en varchar(8000) så har du andra problem. En rad kan inte vara mer än (ca) 8060 bytes och du har redan "bränt" 8002 ungefär på ditt pm.
Kan du inte sortera på din klient istället? Hur ser strukturen ut. Vad är det för data och vad vill du ha ut och i vilken ordning.
Många frågor på en gång...
/mickeSv:Cannot sort a row of size and ORDER BY
/PelleSv: Cannot sort a row of size and ORDER BY