sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 Management Studioでテキストまたはvarchar(MAX)列のコンテンツ全体を表示するにはどうすればよいですか?

    SSMSは、XMLデータに対して無制限のデータのみを許可します。これはデフォルトではなく、オプションで設定する必要があります。

    非常に限られた状況で機能する可能性のあるトリックの1つは、以下のように特別な方法で列に名前を付けて、XMLデータとして扱われるようにすることです。

    DECLARE @S varchar(max) = 'A'
    
    SET @S =  REPLICATE(@S,100000) + 'B' 
    
    SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]
    

    SSMS(少なくともバージョン2012から現在の18.3)では、結果は次のように表示されます

    それをクリックすると、XMLビューアで完全な結果が開きます。右にスクロールすると、Bの最後の文字が保持されていることがわかります

    ただし、これにはいくつかの重大な問題があります。クエリに列を追加すると効果が失われ、余分な行はすべて最初の行と連結されます。最後に、文字列に<などの文字が含まれている場合 XMLビューアを開くと、解析エラーで失敗します。

    <を変換するSQLServerの問題を回避する、これを行うためのより堅牢な方法 &lt;へ など、またはこれらのキャラクターが原因で失敗するのは以下のとおりです(ここでAdam Machanicのクレジットを参照してください)。

    DECLARE @S varchar(max)
    
    SELECT @S = ''
    
    SELECT @S = @S + '
    ' + OBJECT_DEFINITION(OBJECT_ID) FROM SYS.PROCEDURES
    
    SELECT @S AS [processing-instruction(x)] FOR XML PATH('')
    


    1. 非アクティブな時間の後に接続がハングする

    2. MariaDBデータベースのすべてのビューを一覧表示する4つの方法

    3. SQLでvarchar列を複数の値として分割するにはどうすればよいですか?

    4. PostgreSQLの将来のテーブルに対する特権を付与しますか?