【发布时间】:2013-11-18 15:03:51
【问题描述】:
我正在尝试将 .xml 数据插入 Sql Server 数据库。
硬编码作品 ->
string strSQL = @"
DECLARE @input XML = '<Mitarbeiter><Mitarbeiter><ID>6000</ID><Vorname>Ulli</Vorname><Nachname>Unfassbar</Nachname><Gehalt>2000</Gehalt></Mitarbeiter></Mitarbeiter>'
INSERT INTO Mitarbeiter(ID, Vorname, Nachname, Gehalt)
SELECT
XEmp.value('(ID)[1]', 'int'),
XEmp.value('(Vorname)[1]', 'varchar(50)'),
XEmp.value('(Nachname)[1]', 'varchar(50)'),
XEmp.value('(Gehalt)[1]', 'int')
FROM
@input.nodes('/Mitarbeiter/Mitarbeiter') AS XTbl(XEmp)";
...但这应该适用于 .xml 文件。我试图添加文件路径,但没有成功。这是我添加文件路径的方法。
string strSQL = @"
DECLARE @input XML
SELECT @xml = XTbl.XEmp
FROM OPENROWSET( BULK 'C:\TestMail.xml', SINGLE_CLOB ) XTbl(XEmp)
INSERT INTO Mitarbeiter(ID, Vorname, Nachname, Gehalt)
SELECT
XEmp.value('(ID)[1]', 'int'),
XEmp.value('(Vorname)[1]', 'varchar(50)'),
XEmp.value('(Nachname)[1]', 'varchar(50)'),
XEmp.value('(Gehalt)[1]', 'int')
FROM
@input.nodes('/Mitarbeiter/Mitarbeiter') AS XTbl(XEmp)";
有什么想法吗? 提前感谢您对此的任何帮助!
【问题讨论】:
-
您在代码中的哪个位置为@input 赋值?
-
第二个 sn-p 中无处可寻。我还尝试使用 SET @input = 'file path' 添加文件路径。
-
从你的标签中假设你试图在 C# 中做到这一点,这不仅仅是一次性的,将 xml 转储到数据库中?
-
SQL Server 是否托管在另一个系统上?如果是这样,请记住 SQL Server 只能看到它的主机服务器的文件系统。它无法看到客户端的文件系统,除非它们是同一个系统,或者除非它是共享的。
-
最后通过邮件(到公司总部)接收 xml 文件。必须从那里将它们插入到 sql 数据库中。