【问题标题】:Insert multiple records from joining temporary tables从连接临时表中插入多条记录
【发布时间】:2012-10-23 11:54:16
【问题描述】:

我需要将连接选择命令中的多条返回记录插入到临时表中。我使用了以下命令。 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

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

【问题讨论】:

  • 能否请您提供#TempTableValue 表的创建语句?我想看看你为表格设置的默认值是什么

标签: sql sql-server stored-procedures


【解决方案1】:

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

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

来自documentation

默认值

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      相关资源
      最近更新 更多