无法找到列或聚合,或名称不明确

时间:2016-05-25 15:28:48

标签: sql xml sql-server-2005

我试图将XML表导入SQL表。我在SQL Server数据库中创建了一个基本表,但是我收到了错误:

  

找不到任何一列" var1"或用户定义的函数或聚合" var1.value",或名称不明确。

代码:

declare @xmldata as xml

set @xmldata = (SELECT CONVERT(XML, BulkColumn)AS Bulkcolumn
                FROM OPENROWSET (BULK '<filename>.xml', SINGLE_BLOB) as X)

INSERT INTO table1(var1, var2, var3)
    SELECT
        var1 = var1.value('var1', 'int'),
        var2 = var2.value('var2', 'int'),
        var3 = var3.value('var3', 'int')

我必须在某处出错,特别是当我尝试将其导入SQL Server表时。

1 个答案:

答案 0 :(得分:0)

我不确定var1.value应该做什么,甚至编译器也会感到困惑。

除了你的Insert是正确的,只需将我对value1,value2和value3所拥有的内容更改为这些列中所需的值。如果var1,var2或var3的数据类型为数字,则可以删除单引号。任何其他数据类型都需要用单引号括起来。

INSERT INTO table1(var1, var2, var3)
    SELECT
        var1 = 'value1',
        var2 = 'value2',
        var3 = 'value3'

我通常会以这种方式编写插入内容。

INSERT INTO table1(var1, var2, var3)
    SELECT
        'value1' AS 'var1',
        'value2' AS 'var2',
        'value3' AS 'var3'

如果您想在表的列中使用该xml数据,请尝试此操作。您将需要一个名为table1的表,其中至少有一个名为XMLString的列作为数据类型nvarchar(max)

INSERT INTO table1(XMLString)
        SELECT
            @xmldata AS 'XMLString'