gpt4 book ai didi

visual-studio-2008 - 在SSIS中使用临时表

转载 作者:行者123 更新时间:2023-12-04 04:46:25 27 4
gpt4 key购买 nike

我在SQL Server的存储过程中使用临时表。
我正在尝试在OLE DB源编辑器中使用该SP。

我可以在Build Query按钮附带的Query Builder中看到返回的数据输出。
但是,当我单击“列”选项卡时,出现以下错误。

- TITLE: Microsoft Visual Studio

Error at Data Flow Task [OLE DB Source [1]]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Invalid object name '##Payment'.".

Error at Data Flow Task [OLE DB Source [1]]: Unable to retrieve column information from the data source. Make sure your target table in the database is available.



这是否意味着我不能在SP中使用临时表,如果我希望SSIS可以使用它的话

最佳答案

于2020年11月更新。
此帖子已被How to EXEC a stored procedure from SSIS to get its output to text file取代
描述如何从SSIS运行存储过程

exec mySproc WITH RESULT SETS ((i int))
看看Troy Witthoeft提供的解决方案
旧答案
https://web.archive.org/web/20120915093807/http://sqlserverpedia.com/blog/sql-server-bloggers/ssis-stored-procedure-metadata提到了另一种解决方案。看选项3。
(2020年11月;更新的链接)
引用:
在存储过程中添加一些元数据和“set nocount on”,并在其中添加一个“短路的if子句”(如果1 = 0),并在顶部添加一个伪造的select语句。我已经尝试过将“无计数设置为开”的状态进行了测试,但是它没有用。
CREATE PROCEDURE [dbo] . [GenMetadata] AS 
SET NOCOUNT ON
IF 1 = 0
BEGIN
-- Publish metadata
SELECT CAST (NULL AS INT ) AS id ,
CAST (NULL AS NCHAR ( 10 )) AS [Name] ,
CAST (NULL AS NCHAR ( 10 )) AS SirName
END

-- Do real work starting here
CREATE TABLE #test
(
[id] [int] NULL,
[Name] [nchar] ( 10 ) NULL,
[SirName] [nchar] ( 10 ) NULL
)

关于visual-studio-2008 - 在SSIS中使用临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579476/

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