从连接临时表中插入多个记录

时间:2012-10-23 11:54:16

标签: sql sql-server stored-procedures

我需要将一个join select命令中的多个返回记录插入到临时表中。我使用了以下命令。 select语句返回两个值但是当我使用下面的命令插入时,(#TempTableValue)临时表什么都没有。所有其他字段声明都没问题,加入select命令正确返回值。

INSERT into #TempTableValue DEFAULT values
SELECT #temp1.id,#temp1.DestFieldName,#temp2.FieldValues 
FROM #temp2
INNER JOIN #temp1
ON #temp2.FieldName=#temp1.SourceFieldName

select * from #TempTableValue

但是最后一个select命令返回所有Null值。这有什么问题?

2 个答案:

答案 0 :(得分:1)

尝试删除DEFAULT value,如下所示:

INSERT into #TempTableValue 
SELECT #temp1.id,#temp1.DestFieldName,#temp2.FieldValues 
FROM #temp2
INNER JOIN #temp1 ON #temp2.FieldName=#temp1.SourceFieldName

来自documentation

  

默认值

     

强制新行包含为每个定义的默认值   列。

答案 1 :(得分:1)

好吧我想我知道这里有什么问题。 如果使用Insert Into #TempTableValue,则必须首先创建临时表。 要直接插入您的选择,您可以使用此

Select #temp1.id,#temp1.DestFieldName,#temp2.FieldValues Into #TempTableValue
FROM #temp2
INNER JOIN #temp1
ON #temp2.FieldName=#temp1.SourceFieldName