3

SQL Server 2005を使用しています。テーブルの1つに、ntextタイプの列「xmldefinition」があります。現在、この列のデータは非常に巨大で、xmlテキスト全体が含まれています。

例えば:-<root><something1>....</something1></root>

管理スタジオから文字列全体を取得し、それをxmlファイルの外部にコピーして、xml全体を手動で確認したいと思います。しかし、この列を照会し、データをコピーして別のファイルに貼り付けると、内容が途中で壊れてしまい、完全ではありません。

例えば:-<root><something1>........<somechar

これにより、列のxmlデータからわずか8196文字しかコピーされないと思います。したがって、私の質問は、この列の完全なデータを手動で取得するにはどうすればよいかということです。ただし、その列を読み取るためのC#コードを記述できますが、これはManagementStudioで手動で実行したいと思います。どんなアイデアでもお願いします。

4

3 に答える 3

5

SQLServerの切り捨てと8192の制限に示されているエクスポート手法は私にとってはうまくいきました。要約すると、次のようになります。

切り捨てられないフラットファイルにデータをエクスポートできます。これをする:

  • データベースを右クリックします
  • [タスク]->[データのエクスポート]をクリックします
  • データソースを選択します(デフォルトで問題ありません)
  • 宛先タイプとして「フラットファイル宛先」を選択します。
  • 出力のファイル名を選択します。
  • [テーブルのコピーまたはクエリの指定]で、[転送するデータを指定するクエリを作成する]を選択します
  • クエリに貼り付けます

残りの手順は自明である必要があります。これにより、ファイルがテキストに出力され、お気に入りのテキストエディタで開くことができます。

于 2012-07-03T18:14:34.933 に答える
4

selectステートメントでデータをNTextからXMLに変換してみませんか?次に、SSMS内の別のウィンドウでXMLを開くオプションが表示されます。

于 2011-02-10T12:28:24.047 に答える
3

一般に、この制限を超える唯一の方法は、XMLを使用することです。長いvarchar列の場合、私は通常次のようなものを使用します(処理命令のトリックは<に変更されないようにします&lt;)。

select object_definition(object_id('sysdatabases')) 
 as [processing-instruction(x)] FOR XML PATH 

もちろん、あなたの場合、データはすでにXMLであるため、単純なキャストが機能するはずです。

于 2011-02-10T13:07:04.207 に答える