ストアドプロシージャで動的クエリを作成しています。動的クエリを印刷しようとすると、クエリ全体の一部しか印刷されません。私は以下のように変数の長さを印刷するとき、全体の動的クエリを保持しているSQL ServerでNvarchar(max)が4000文字に縮小されます
私の変数は、それは良いですが、全体のクエリの長さを与える、以下
DECLARE @SQL NVARCHAR(MAX)
のように宣言されています。
PRINT LEN(@SQL)
しかし、スクリプト自体を印刷すると、クエリ全体の一部しか印刷されません。
PRINT @SQL
私はまた、それだけで最初4000charsを出力なぜ
PRINT CONVERT(NVARCHAR(MAX),@SQL)
以下のようにそれを印刷しようとしましたか?私は間違って何をしていますか?
なぜドキュメントを読んでいないのですか? https://msdn.microsoft.com/en-us/library/ms176047.aspxメッセージ文字列は、Unicode以外の文字列の場合は最大8,000文字、Unicode文字列の場合は4000文字まで指定できます。長い文字列は切り捨てられます。 varchar(max)およびnvarchar(max)データ型は、varchar(8000)およびnvarchar(4000)以下のデータ型に切り捨てられます。 –
@VladimirBaranov、しかし私の文字列は約15.000文字です。 –
あなたのデータは縮小/切り詰めされていません。 SSMSには、特定のフィールドに表示される文字数に制限があります。別のアプリケーションを使用して 'SELECT'クエリ結果を解釈すると、フィールドの完全な値が得られます。 – Siyual