SQLServer:プロシージャで NVARCHAR(MAX)の変数に文字列連結で値を格納すると途中で切れてしまう件

SQLServer2005から NVARCHAR(MAX) というのができて超巨大な文字列を格納できるようになったようですが、文字列の連結で値を格納していくと8000byte付近で切れてしまうようです。
 ⇒このせいで散々悩みました・・・

例えば

SET @query = N'超長い文字列' + @sub_query + N'超長い文字列'

のような感じだとだめみたいです。(@queryがNVARCHAR(MAX)の変数)

回避策としては、

SET @query = cast(N'超長い文字列' AS NVARCHAR(MAX)) + @sub_query + ....

とするか、あるいは

SET @query = N'超長い文字列'
SET @query = @query + @sub_query
SET @query = @query + N'超長い文字列'

とするといいみたいです。

http://blogs.sqlpassj.org/yoneda/archive/2005/11/26/14996.aspx