Stored procedures 如何将此代码的结果插入SQL Server 2008 R2中的现有表中?

Stored procedures 如何将此代码的结果插入SQL Server 2008 R2中的现有表中?,stored-procedures,sql-server-2008-r2,Stored Procedures,Sql Server 2008 R2,我必须将这段代码的输出插入到一个已经存在的表中。我怎样才能做到这一点?我这样做了,但是输出被附加到表的前一个结果中 代码: 如果我提供 SELECT * into KPI_History FROM @KTV 它创建一个新表并将结果插入其中,以代替注释行。我想将结果插入到已经存在的表中 更新 @米凯尔 我不知道我是否能让你理解我的问题。对不起 我想要的是,现在我有两个表,其中包含以下列: KPI_历史记录(业务单位、KPI_名称、年初至今、实际值、偏差等) 带有(KPI\u名称、KPI\u代码

我必须将这段代码的输出插入到一个已经存在的表中。我怎样才能做到这一点?我这样做了,但是输出被附加到表的前一个结果中

代码:

如果我提供

SELECT * 
into KPI_History
FROM @KTV
它创建一个新表并将结果插入其中,以代替注释行。我想将结果插入到已经存在的表中

更新

@米凯尔

我不知道我是否能让你理解我的问题。对不起

我想要的是,现在我有两个表,其中包含以下列:

KPI_历史记录(业务单位、KPI_名称、年初至今、实际值、偏差等)

带有(KPI\u名称、KPI\u代码)的KPI\u代码

KPI_历史记录表中,我想使用KPI_代码表KPI_代码,而不是KPI_历史记录表KPI_名称。由于KPI_名称的字符串太长,我为KPI_名称创建了短代码,并将其赋值为KPI_代码。i、 e.KPI_代码表由KPI名称和KPI_名称代码组成

因此,输出应为: KPI_表(业务单位、KPI_名称[应包含KPI_历史记录表中的代码]、YTD等)

希望我能让你们明白我的要求|

我想将结果插入到已经存在的表中

以下是如何插入到现有表中:

insert into KPI_History (Business_Unit, KPI, YTD_Plan, Actual, Deviation, Year_Plan)
select Business_Unit, KPI, YTD_Plan, Actual, Deviation, Year_Plan
from @KTV;
但输出将附加到 桌子

因此,您不希望将结果添加到
KPI\u历史记录中
?那么我想您只需要在插入之前删除
KPI\u历史记录中的行

delete from KPI_History;

insert into KPI_History (Business_Unit, KPI, YTD_Plan, Actual, Deviation, Year_Plan)
select Business_Unit, KPI, YTD_Plan, Actual, Deviation, Year_Plan
from @KTV;
更新:

如果需要insert中另一个表的信息,可以直接加入该表。 像这样的东西可能适合你

insert into KPI_History
  (Business_Unit,
   KPI,
   YTD_Plan,
   Actual,
   Deviation,
   Year_Plan, 
   Code)
select K.Business_Unit,
       K.KPI, 
       K.YTD_Plan,
       K.Actual,
       K.Deviation,
       K.Year_Plan,
       C.Code
from @KTV as K
  inner join KPI_Code as C
    on K.KPI = C.KPI;

发布此过程的输出…它将表显示为输出,但我想将其插入现有表中。很抱歉在上面提到这一点,但我必须更新数据的表包含一个名为“TS”的额外列。那么,这段代码能解决我的问题吗?还有一件事,在将结果放入KPI_历史表之后,我想将历史表连接到代码表。@Pankaj-如果列不匹配,您必须像我一样指定列名,而不要使用
select*
。因此,我想它应该可以正常工作,但在
TS
中当然不会有任何值,除非在select中指定一个常量表达式,或者在列中定义一个默认值。@Pankaj“我想将历史表连接到代码表”我不知道这是什么意思。请更新您的问题。顺便说一句,我猜你提供的代码不是你的实际代码。按原样,根本不需要在其中放置光标。抱歉,没有发布该光标。。问题是:还有一件事,在将结果放入KPI_历史表之后,我想将KPI_历史表连接到KPI_代码表。历史记录表包含上述列。代码表包含两列“KPI”和“代码”。我希望KPI_历史记录表包含KPI_代码表的代码列,而不是KPI_历史记录表的KPI。救命啊。
insert into KPI_History
  (Business_Unit,
   KPI,
   YTD_Plan,
   Actual,
   Deviation,
   Year_Plan, 
   Code)
select K.Business_Unit,
       K.KPI, 
       K.YTD_Plan,
       K.Actual,
       K.Deviation,
       K.Year_Plan,
       C.Code
from @KTV as K
  inner join KPI_Code as C
    on K.KPI = C.KPI;