存储过程SQL Server中的select出错

存储过程SQL Server中的select出错,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我正在编写一个存储过程,当在前端应用程序上单击按钮副本时调用它,我似乎对TestData表后面的select语句有问题。请一些人指出错误来帮助我们 Create Procedure CopyRates @Period_id INT AS BEGIN CREATE TABLE #TestData (Period_id int, Evo_StockLink int, Evo_itemCode varchar(50), Evo_Description varchar(50), UnitRate

我正在编写一个存储过程,当在前端应用程序上单击按钮副本时调用它,我似乎对TestData表后面的select语句有问题。请一些人指出错误来帮助我们

Create Procedure CopyRates
@Period_id INT
AS
BEGIN

CREATE TABLE #TestData (Period_id int, Evo_StockLink int, Evo_itemCode    varchar(50), Evo_Description varchar(50), UnitRate float, MinRate float, RateBeforeSevenDays float, RateAfterSevenDays float)

INSERT INTO #TestData (Period_id, Evo_StockLink, Evo_itemCode ,Evo_Description, UnitRate, MinRate, RateBeforeSevenDays, RateAfterSevenDays)
VALUES
SELECT  Period_id, Evo_StockLink, Evo_itemCode ,Evo_Description, UnitRate, MinRate, RateBeforeSevenDays, RateAfterSevenDays

From [ZS_CS_EVO_Integration].[dbo].[rates]

Where Period_id = @Period_id

INSERT INTO rates(Period_id, Evo_StockLink, Evo_itemCode ,Evo_Description, UnitRate, MinRate, RateBeforeSevenDays, RateAfterSevenDays)
   SELECT Period_id +1, Evo_StockLink, Evo_itemCode ,Evo_Description, UnitRate, MinRate, RateBeforeSevenDays, RateAfterSevenDays
   FROM #TestData
END
实际上,您不需要TestData临时表,您可以从[ZS_CS_EVO_Integration].[dbo].[rates].

将direclty插入速率表,您可以尝试以下方法:

SELECT 
* 
INTO temp_Rates
FROM rates 
WHERE Period_Id = (SELECT TOP 1 Period_Id FROM rates ORDER BY Period_Id DESC)

INSERT INTO rates 
SELECT Period_id +1, 
Evo_StockLink, 
Evo_itemCode,
Evo_Description, 
UnitRate, 
MinRate, 
RateBeforeSevenDays, 
RateAfterSevenDays
FROM temp_Rates

具体错误是什么?@MusiclovinDianGirl错误是:Msg 156,级别15,状态1,过程复制率,第12行关键字“Select”附近的语法不正确。第一次插入失败。。使用insert时。。选择“您不需要值”这仅用于硬编码值。@Eduardata数据库中已有值,需要每年最后3行复制一次,并且前端应用程序的费率也相应更改。不,您没有领会我的意思。我说过,当行来自select语句时,不能在insert语句中使用VALUES关键字。如果在第一条insert语句中出现此错误。。在测试数据值中插入选择周期\ id,。。。
SELECT 
* 
INTO temp_Rates
FROM rates 
WHERE Period_Id = (SELECT TOP 1 Period_Id FROM rates ORDER BY Period_Id DESC)

INSERT INTO rates 
SELECT Period_id +1, 
Evo_StockLink, 
Evo_itemCode,
Evo_Description, 
UnitRate, 
MinRate, 
RateBeforeSevenDays, 
RateAfterSevenDays
FROM temp_Rates