PRINT Convert(VarChar(Max),Replicate('1234567890 ',1000))
これは、7,997文字のウィンドウに戻ります。SQL Server 2008 VarChar(Max)は、8000文字のみを返します。どうして?
SELECT Convert(VarChar(Max),Replicate('1234567890 ',1000))
これはグリッド7,996文字に戻ります。印刷ウィンドウ内の余分な文字はCRLFです。 ツール→オプション→クエリ結果→結果 - テキスト→各列に表示される最大文字数= 8192
グリッドには8,192文字が返されます11,001文字が私のウィンドウに返されると期待しています。
は、このテストがあります:
DECLARE @VarCharMax VarChar(Max)
SET @VarCharMax = Replicate('123456',2000)
SELECT Right(@VarCharMax,3) -- returns 456
SELECT Right(Left(@VarCharMax,8000),3) -- returns 456
SELECT Right(Left(@VarCharMax,7999),3) -- returns 456
SELECT Right(Left(@VarCharMax,7998),3) -- returns 456
SELECT Right(Left(@VarCharMax,7997),3) -- returns 345
SELECT Right(Left(@VarCharMax,7996),3) -- returns 234
私はここで理解して何をしないのですか?私が期待するように全く行動しないようですね?
デフォルトでは8Kに切り詰められますが、結果をより大きくキャストできます。 OPが行ったようにvarchar(max)を使用しています – scsimon
キャストは結果ではなく引数である –
はい...私のコメント後投稿を編集しました。 – scsimon