我有一个问题 - 我想在存储过程中使用临时表是SQL Server,它将从SSIS包执行。 我看了一些提示如何做到这一点,我试过这个(第一个答案): 但它没有奏效。 我有MS Visual Studio 2010,不能是这个版本的问题? 这是我在存储过程的代码:在ssis包中使用临时表
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错误消息:
错误在数据流任务[OLE DB源[1]]:SSIS错误代码 DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码: 0x80004005。 OLE DB记录可用。源:“Microsoft SQL 服务器本机客户端11.0”Hresult:0x80004005描述:“ 元数据无法确定,因为过程'some_procedure'中的语句'INSERT INTO #some_table VALUES(250)'使用临时表”。
数据流任务错误[OLE DB Source [1]]:无法从数据源检索列 信息。确保您的目标表在 数据库可用。
您遇到的问题,获取元数据?如果是这样,您需要在设计中设置“SET FMTONLY ON”以获取元数据,然后在设计之后移除以获取数据。 [这是使用FMTONLY获取元数据的信息](http://munishbansal.wordpress.com/2009/02/18/set-fmtonly-on-useful-in-tsql-ssis-packages-for-using-temp -tables /) – Tak 2014-08-28 13:10:41