3

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

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

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

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

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

4

3 回答 3

5

SQL Server 截断和 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 回答