我有一个问题 - 我想在SQL Server的存储过程中使用临时表,这个存储过程将从SSIS包中执行。 我读了一些关于如何实现的技巧,我尝试了第一个答案提供的方法: Using Temp tables in SSIS,但它没有起作用。 我使用的是MS Visual Studio 2010,这个版本会有问题吗? 下面是我的存储过程代码:
CREATE PROCEDURE some_procedure
AS
SET NOCOUNT ON
IF 1 = 0
BEGIN
SELECT CAST(NULL AS int) as number
END
CREATE TABLE #some_table (number int)
INSERT INTO #some_table VALUES (250)
SELECT number FROM #some_table
感谢任何建议或经验。
以下是来自Visual Studio的错误消息:
Data Flow Task [OLE DB Source [1]]中的错误:SSIS错误代码DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80004005。OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“由于过程'some_procedure'中的语句'INSERT INTO #some_table VALUES (250)'使用了临时表,因此无法确定元数据。”。
Data Flow Task [OLE DB Source [1]]中的错误:无法从数据源检索列信息。确保数据库中的目标表可用。
SET FMTONLY ON
来获取元数据,然后在设计完成后将其删除以获取数据。这里有使用FMTONLY获取元数据的信息。 - Tak