簡體   English   中英

SQL Server 2005 BCP xml數據錯誤無效的對象名稱臨時表

[英]SQL Server 2005 BCP xml data error invalid object name temp table

我正在使用SQL Server 2005 SP4。 我有一個存儲過程,該存儲過程從許多表中獲取數據並將其轉換為XML,然后將該XML數據發送到該存儲過程的輸出變量。

現在,我想將此XML數據加載到具有特定位置的文件系統中的文件中。 為此,我使用帶有以下命令的BCP實用程序:

BCP "exec master.[dbo].[SPFileCreationInstanceOnlyXML]" QUERYOUT "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\PerformanceAnalyticsXML\LEOSQL2K5Apr112014128PM.xml" -c -t -T -SLEO\SQL2K5

現在,當我嘗試從命令提示符執行時,此命令給我一條錯誤消息。

SQLState = S0002,NativeError = 208
錯誤= [Microsoft] [SQL Native Client] [SQL Server]無效的對象名稱'## traceinfo'。

我無法弄清楚為什么它引用了臨時表。 BCP執行的存儲過程代碼如下

ALTER procedure [dbo].[SPFileCreationInstanceOnlyXML]
as 
begin
    DECLARE @Result XML
    exec [dbo].[BCPTableLineXML] @Result OUT

    SELECT @Result AS FinalOutput
end

對此最有趣的是,我在SQL Server 2008 R2上具有相同的存儲過程,該存儲過程在其他服務器上的運行方式就像一個魅力,只有與此SQL Server 2005配合使用的存儲過程才給我此錯誤消息。

BCPTabelineXML的代碼如下,BCPTableXML內部的代碼如下。

ALTER  procedure [dbo].[BCPPerformanceBaseLineXML]
@ALLRet xml OUTPUT

as 
begin
DECLARE @ALL xml

--SQL Server Version and Server Name
DECLARE @SQLTraceFlag NVARCHAR(MAX)

create table ##traceinfo(flag varchar(20),Status varchar(10),Global varchar(10),Session varchar(10))

INSERT INTO ##traceinfo EXECUTE ('DBCC TRACESTATUS(-1)')

--select * from ##traceinfo

SET @SQLTraceFlag =
(
select * from
(
select * from ##traceinfo
) as SQLTraceFlag
for xml auto

);
--select @SQLTraceFlag
drop table ##traceinfo
set  @ALL = CONVERT(XML
ISNULL(@SQLTraceFlag,'')) 


set @ALLRet=@ALL;

end

在此先感謝您的幫助和寶貴的時間。

尼克斯,歡呼

使用表變量而不是臨時表解決了問題。 -

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM