我正在将数据从XML读取到表中。当我从表中选择时,表为空。
SET @INPUTXML = CAST(@Attribute AS XML)
EXEC Sp_xml_preparedocument @TestDoc OUTPUT, @INPUTXML
SELECT Row_Number() OVER (ORDER BY Name) AS Row, *
INTO #tData
FROM OPENXML(@TestDoc, N'/DocumentElement/dtData')
WITH (
ID VARCHAR(100) './ID'
, Name VARCHAR(100) './Name'
, Value VARCHAR(max) './Value'
, Column VARCHAR(100) './Column'
)
EXEC Sp_xml_removedocument @TestDoc
以下是我的问题:
答案 0 :(得分:0)
不过要回答您的问题。
#tData
为空,因为您的SELECT
语句未返回任何数据。即使SELECT...INTO
不返回任何行,一条SELECT
语句仍将创建该表。我们无法说出您的SELECT
为什么不返回数据的原因,因为我们没有示例数据。如果删除INTO
子句,您将看到不返回任何行,因此需要修复SELECT
,FROM
等,但这很快就会在我的声明中出现(关于使用XQUERY)读取作为输入提供的XML文本,使用MSXML解析器(Msxmlsql.dll)解析文本,并以准备好使用的状态提供已解析的文档。该解析的文档是XML文档中各个节点的树形表示:元素,属性,文本,注释等。
删除文档句柄指定的XML文档的内部表示,并使文档句柄无效。