如何从SQL管理工作室获取ntext列的完整数据?

时间:2011-02-10 10:17:57

标签: xml sql-server-2005 ssms ntext

我正在使用SQL Server 2005.在其中一个表中,我有一个“xmldefinition”列,它是ntext类型。现在,此列中的数据非常庞大,并包含整个xml文本。

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

我想从管理工作室获取整个字符串并将其复制到xml文件中,只是为了手动完成整个xml。但是当我查询这个列并将数据复制并粘贴到另一个文件中时,内容在中间被破坏而且不完整。

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

我相信这只会从列中的xml数据中复制一些8196个字符。所以我的问题是,如何手动获取此列的完整数据。但是,我可以编写一个C#代码来读取该列,但我想在管理工作室中手动执行此操作。请问。

3 个答案:

答案 0 :(得分:5)

SQL Server truncation and 8192 limitation中显示的导出技术对我有用。总而言之,它说:

您可以将数据导出到不会被截断的平面文件中。要做到这一点:

  • 右键单击数据库
  • 点击任务 - &gt;导出数据
  • 选择您的数据源(默认值应该没问题)
  • 为目标类型选择“平面文件目的地”。
  • 选择输出的文件名。
  • 在“指定表格复制或查询”中,选择“编写查询以指定要传输的数据”
  • 粘贴您的查询

其余步骤应该是自我解释的。这会将文件输出到文本,您可以在您喜欢的文本编辑器中打开它。

答案 1 :(得分:4)

为什么不在select语句中将数据从NText转换为XML?然后,您可以选择在SSMS的单独窗口中打开XML。

答案 2 :(得分:3)

一般来说,超过此限制的唯一方法是通过XML。对于长varchar列,我通常使用类似下面的内容(处理指令技巧避免将<更改为&lt;等。)

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

当然,在您的情况下,数据已经是XML,因此简单的演员应该可以使用!