I have a SQL stored procedure that accepts a parameter of type VARCHAR(MAX). As far as I know and according to all I read about, the max size for such strings is 2GB: MSDN
For some reason when passing a string larger than 8KB I get:
String or binary data would be truncated.
Why do I get this error message, and how can I resolve it?
According to BoL (the link you specified) there is a difference in interpretation. The maximum amount you can use in a query (the n part) is 8000. For storage purposes the varchar(max) can handle 2GB on disk.
It is just interpretation of datatypes for querying and storage purposes. So bottom line, you can only use 8000 chars in a query....