gpt4 book ai didi

sql-server - 将 sqlcmd 与 FOR XML 结合使用会返回无效的对象名称 'dbo.Table',但查询在 SSMS 中运行

转载 作者:行者123 更新时间:2023-12-01 20:26:42 25 4
gpt4 key购买 nike

这是我的查询:

SELECT title1, 
[precinct percent] AS [PrecinctPercent],
leader,
[leader percent] AS [LeaderPercent],
Winner,
WinningVotes,
leader2,
[leader2 percent] AS [Leader2Percent],
Loser,
LosingVotes
FROM [leader].dbo.[RACE] r inner join
(select rc.[race number],
max(case when seqnum = 1 then [candidate num] end) as Winner,
max(case when seqnum = 1 then Votes end) as WinningVotes,
max(case when seqnum = 2 then [candidate num] end) as Loser,
max(case when seqnum = 2 then Votes end) as LosingVotes
from (select rc.*,
row_number() over (partition by rc.[race number] order by votes desc) as seqnum
from [leader].dbo.[RACE CANDIDATES] rc
) rc
group by rc.[race number]
) rc
on r.[race number] = rc.[race number]
FOR XML PATH ('WQAD'), ROOT('root')

该查询运行并产生一些我想要的结果。我正在尝试将 XML 文件作为文件输出。我已经能够通过在 Server Management Studio 中打开 xml,然后运行 ​​VB 脚本来重新管理临时 xml 文件,然后将该 xml 移动到其目的地来完成此任务。嘿...我必须尽我所能才能获得这些结果。

在我的旅行中,我尝试使用 sqlcmd 来完成此任务。这是我正在尝试运行的:

sqlcmd -S WQAD-SEVE\SQLEXPRESS -i C:\Users\localtv\Desktop\QUERIES\THISONE22 .sql -o C:\Users\localtv\Desktop\RESULTS236.xml

它执行,但是当我打开/编辑它输出的 XML 文件时,我得到:

Msg 208, Level 16, State 1, Server WQAD-SEVE\SQLEXPRESS, Line 1 Invalid object name 'dbo.RACE'.

我尝试插入[database].dbo.RACE,但仍然遇到同样的问题。我已经为此工作了几个星期,并试图找到一种方法来使其发挥作用。

此外,当我尝试在没有 -o 输出目标的情况下运行命令时,命令行会回显相同的错误消息。从我的查询来看,它在遇到 dbo.RACE 之前已经完成了相当多的时间。

有什么建议吗?

预先感谢您的宝贵帮助。

***我已删除 [数据库名称] 和 .dbo。同样,仍然将 RACE 显示为无效对象。

最佳答案

正如您所发现且我确认的那样,您需要指定 -d MyDatabaseName 选项。

否则,即使您在脚本中添加了数据库名称,一旦使用 FOR XML PATH,您就会收到无效对象名称“Table” 错误FROM 子句(即,即使 FROM Database.dbo.Table 也无法避免使用 FOR XML AUTO< 的 -d 的需要)。奇怪的。

回复:它没有踢出格式正确的 xml 文件:

您需要添加 :XML ON作为 sqlcmd 输入 (-i) 文件中的第一行:

:XML ON
SELECT title1,
...

关于sql-server - 将 sqlcmd 与 FOR XML 结合使用会返回无效的对象名称 'dbo.Table',但查询在 SSMS 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com