2011-02-10 25 views
3

我正在使用SQL Server 2005.在其中一個表中,我有一個「xmldefinition」,它是ntext類型的列。現在這個列中的數據非常龐大,包含了整個xml文本。如何從SQL管理工作室獲取ntext列的完整數據?

如: - <root><something1>....</something1></root>

我想從Management Studio中的整個字符串,並以xml文件複製之外,它只是手動完成對整個XML。但是,當我查詢此列並將數據複製並粘貼到另一個文件時,內容在中間被破壞,並且不完整。

如: - <root><something1>........<somechar

我相信,這將只是一些字符8196從XML數據列複製。所以我的問題是,我如何手動獲取這一列的完整數據。然而,我可以編寫一個C#代碼來讀取該列,但我想在management studio中手動執行此操作。請任何想法。

+1

NTEXT已棄用 - 請勿再使用它了。如果你有XML數據 - 爲什麼不首先使用`XML`數據類型?這將是最優化的XML存儲....如果你不能 - 那麼至少要切換到「NVARCHAR(MAX)」而不是NTEXT ......那樣,獲得完整的字符串很容易 – 2011-02-10 10:28:26

+0

@ marc_s - 是的,你是對的。但是這是一種遺留系統,我們正在研究一個框架,目前僅將列添加爲ntext。該框架來自第三方供應商。所以目前我們必須使用ntext。 – 2011-02-10 10:30:57

回答

4

爲什麼不在您的select語句中將數據從NText轉換爲XML?然後您可以選擇在SSMS內的單獨窗口中打開XML。

+0

絕對有效。謝謝。令人驚訝的部分是,我不知道這個XML數據類型。一個簡單的演員現在適合我...很酷。 – 2011-02-10 13:14:46

3

超出此限制的唯一方法通常是通過XML。對於LONG VARCHAR列我通常使用類似下面的(處理指令招避免<被改爲&lt;等)

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

當然,在你的情況下,數據已XML這樣一個簡單的鑄件應努力!

5

SQL Server truncation and 8192 limitation中顯示的導出技巧適用於我。總之它說:

您可以將數據導出到不會被截斷的平面文件。要做到這一點:

  • 右擊數據庫
  • 單擊任務 - >導出數據
  • 選擇數據源(默認應該是罰款)
  • 選擇「平面文件目標」爲目標類型。
  • 爲輸出選擇一個文件名。
  • 在「指定表複製或查詢」,選擇「編寫一個查詢來指定要傳輸的數據」
  • 粘貼在查詢

其餘的步驟應該是不言而喻的。這會將文件輸出到文本,並且可以在您最喜歡的文本編輯器中打開它。

相關問題