ホームページ >データベース >mysql チュートリアル >SQL Server 2005 で nvarchar(max) 文字列が 4000 文字に切り詰められるのはなぜですか?

SQL Server 2005 で nvarchar(max) 文字列が 4000 文字に切り詰められるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-01 08:46:10309ブラウズ

Why is my nvarchar(max) string truncated to 4000 characters in SQL Server 2005?

SS 2005 での Nvarchar(Max) 文字列の切り詰め

nvarchar(max) として宣言された文字列が TSQL で 4000 文字しか取得できないのはなぜですかSSで2005?

解決策

@SQL1 を nvarchar(max) として宣言しているにもかかわらず、最初はそれぞれ 4000 未満の短い文字列のコレクション (@alldate、@alldateprevweek) を格納します。文字。文字列連結プロセスでは、これらを最大値以外の文字列として扱い、その後 @SQL1 に最大 4000 文字を入力します。

この問題を解決するには、@SQL1 への代入の右側全体が nvarchar であることを確認してください。 (最大)。たとえば、nvarchar(max) 定数を連結する前に、@SQL1 を空の文字列として初期化します。

SET @SQL1 = ''
SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...

代入演算子は、他の言語の整数の除算と同様に、優先順位が最も低くなります。したがって、データ型の優先順位は連結ではなく代入によって決まります。

以上がSQL Server 2005 で nvarchar(max) 文字列が 4000 文字に切り詰められるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。