代码之家  ›  专栏  ›  技术社区  ›  David

在Management Studio中导入时清除“xml”列中的数据

  •  0
  • David  · 技术社区  · 15 年前

    使用ManagementStudio2005中的SQL Server导入和导出向导,我遇到了一个大问题。在选择了一组要复制其数据的表(在现有选项卡中指定删除行,在映射中指定标识插入)后,我执行向导,将一个数据库中的行很好地复制到具有相同架构的相同但以前为空的数据库中。

    但是,我发现并不是所有的列都被正确复制。数据类型“xml”的列将替换为空字符串(“”)。如果列以前是 无效的 它将被复制为 无效的 ,但如果它包含XML数据,则复制的列将是一个空字符串(这会导致我的代码中出现立即解析异常)。

    XML列没有架构,它们只是自由形式。下面是最简单的表(更改列名以保护有罪者):

    CREATE TABLE [dbo].[Joes]
    (
        [JoeID] [int] IDENTITY(1,1) NOT NULL,
        [Name] [nvarchar](20) NOT NULL,
        [Wives] [xml] NOT NULL CONSTRAINT [DF_Roles_Permissions] DEFAULT ('<wives />'),
        CONSTRAINT [PK_Joes] PRIMARY KEY CLUSTERED ([JoeID] ASC)
    )
    

    我必须确保在映射中打开了标识插入以无错误地复制行,是否缺少其他设置以确保复制XML数据?

    1 回复  |  直到 15 年前
        1
  •  0
  •   David    15 年前

    试错法表明,“为多个表优化”选项是这个问题的根源。只有在选择了大量表时,才会自动选中此选项。

    如果他们能把这个问题与已知问题联系起来,我仍然接受答案,因为如果我能,我不想继续下去,除非我确信导入会随着数据集的增加或结构的变化而正常工作。