5
SQL NVARCHARおよびVARCHARの制限
すべて、私には大きな(避けられない)動的SQLクエリがあります。選択基準のフィールド数が原因で、動的SQLを含む文字列は4000文字を超えています。今、私は4000の最大セットがあることを理解していNVARCHAR(MAX)ますが、ステートメントのサーバープロファイラーで実行されたSQLを見て DELARE @SQL NVARCHAR(MAX); SET @SQL = 'SomeMassiveString > 4000 chars...'; EXEC(@SQL); GO 動作しているようです(!?)。これもまた大きい別のクエリの場合、この4000制限(!?)に関連付けられているエラーがスローされます。基本的に、この4000制限の後のすべてのSQLがトリムされ、構文エラーが残ります。プロファイラーにはこれがありますが、この動的SQLクエリは完全に表示されています(!?)。 ここで正確に何が起こっているのですか、この@SQL変数をVARCHARに変換して続行するだけですか? 御時間ありがとうございます。 PS また、これらの大きなクエリを表示するために4000文字以上を出力できると便利です。以下は4000に制限されています SELECT CONVERT(XML, @SQL); PRINT(@SQL); 他にクールな方法はありますか?