我试图将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表时。
答案 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'