我的问题与此处已经回答的问题略有不同。
我有一个存储过程,它有1个参数,并根据该参数返回不同的结果(列数)。在这个存储过程中,我创建了一个名为#FreightData的表。存储过程的结束具有以下内容:
IF @IncludeIDs = 0
BEGIN
select [Buyer], [Contract], [Product], [Shipowner], [DespatchOrder] from #FreightData
END
ELSE
BEGIN
select * from #FreightData
END
以上所有内容均已成功运作。
然后,在另一个名为[FreightProfile]的存储过程中,我尝试使用以下结果填充#temp表:
EXEC [dbo].[EXCEL_FreightData] @IncludeIDs = 1
我使用了[EXCEL_FreightData]中的完全相同的CREATE TABLE定义(使用不同的表名 - #FreightProfile_results)并尝试使用
填充新的临时表INSERT INTO #FreightProfile_results
EXEC [dbo].[EXCEL_FreightData] @IncludeIDs = 1
但是,我收到了错误:
列名或提供的值与表定义不匹配。
我现在正在尝试使用OPENROWSET解决方案,因此我不必提供表格定义,以解决这个问题,但如果有人对上述内容有任何建议,那就太多了不胜感激!
答案 0 :(得分:0)
我的坏!
我在表定义中复制了以下内容,因此出现了问题。
[ID] [int] identity (1,1) Not Null