存储过程SQL Server中的select出错
我正在编写一个存储过程,当在前端应用程序上单击按钮副本时调用它,我似乎对TestData表后面的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
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