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

SSIS 2008-将xml文件内容导入sql server

  •  2
  • Josh  · 技术社区  · 14 年前

    用于存储数据的表如下所示:

    create table Import_Files
    (
        SequenceId              int             IDENTITY(1,1) NOT NULL,
        FileName                varchar(200)    NOT NULL,
        FileXml                 xml             NOT NULL,
        Created                 datetime        DEFAULT(GETDATE()) NOT NULL,
        Processed               bit             DEFAULT(0) NOT NULL
    )
    

    我的存储过程:

    CREATE PROCEDURE [dbo].[AddFile] 
        @FileName   varchar(200),
        @FileXml    xml
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;
    
        --Add new record
        INSERT INTO Import_Files
        ([FileName], FileXml)
        VALUES
        (@FileName, @FileXml)
    
    END
    

    5 回复  |  直到 14 年前
        1
  •  2
  •   Jason Horner    14 年前

    我将查看import列转换。它允许您为数据流中的每一行导入文件的内容。数据源只是每个文件和您需要的任何其他列级元数据的列表。

    这可能比从spro中逐行插入性能更好

    有关在此处设置的详细信息:

    http://msdn.microsoft.com/en-us/library/ms141262.aspx

        2
  •  1
  •   Frank    14 年前

        3
  •  1
  •   SPE109    14 年前

    如前所述,将proc更改为接受字符串数据类型varchar(max),如果必须将其存储在xml列中,则在proc中执行转换为xml

        4
  •  -1
  •   ajdams    14 年前

    我不使用executesql任务,而是使用一个XML源代码——将所有需要的字段生成列,然后使用oledb目标将这些字段传递到数据库表中。这样,您甚至不必使用存储过程,因为SSIS已经为您执行这些插入操作,并且它可以识别您的xml类型。

        5
  •  -1
  •   Josh    14 年前