执行sp_InsertPumpsStatus存储过程时出现Invalid object name错误的原因
存储过程执行报错:Invalid object name 'dbo.sp_InsertPumpsStatus' 问题解决
嘿,这个问题其实一眼就能看穿——你在存储过程的INSERT语句里,错误地把要插入数据的目标表写成了存储过程自己的名字!
看你写的存储过程代码,INSERT INTO [dbo].sp_InsertPumpsStatus (...)这一行里,[dbo].sp_InsertPumpsStatus是你刚创建的存储过程名称,而不是你实际用来存储水泵状态数据的表名。SQL Server找不到名为sp_InsertPumpsStatus的表,自然就抛出了"Invalid object name"的错误。
修正方案
把INSERT INTO后面的对象名替换成你的真实数据表名(比如假设你的表名叫PumpsStatus,请根据实际情况修改)。修正后的存储过程代码示例如下:
CREATE PROCEDURE [dbo].[sp_InsertPumpsStatus] ( @Frequency1 FLOAT, @Power1 FLOAT, @Db1 FLOAT, @Efficiency1 FLOAT, @Frequency2 FLOAT, @Power2 FLOAT, @Db2 FLOAT, @Efficiency2 FLOAT, @Frequency3 FLOAT = NULL, @Power3 FLOAT = NULL, @Db3 FLOAT = NULL, @Efficiency3 FLOAT = NULL, @Frequency4 FLOAT = NULL, @Power4 FLOAT = NULL, @Db4 FLOAT = NULL, @Efficiency4 FLOAT = NULL, @Frequency5 FLOAT = NULL, @Power5 FLOAT = NULL, @Db5 FLOAT = NULL, @Efficiency5 FLOAT = NULL, @Frequency6 FLOAT = NULL, @Power6 FLOAT = NULL, @Db6 FLOAT = NULL, @Efficiency6 FLOAT = NULL, @Frequency7 FLOAT = NULL, @Power7 FLOAT = NULL, @Db7 FLOAT = NULL, @Efficiency7 FLOAT = NULL, @Frequency8 FLOAT = NULL, @Power8 FLOAT = NULL, @Db8 FLOAT = NULL, @Efficiency8 FLOAT = NULL, @Frequency9 FLOAT = NULL, @Power9 FLOAT = NULL, @Db9 FLOAT = NULL, @Efficiency9 FLOAT = NULL, @Frequency10 FLOAT = NULL, @Power10 FLOAT = NULL, @Db10 FLOAT = NULL, @Efficiency10 FLOAT = NULL, @SolarDateTime NVARCHAR(20), @Date DATETIME ) AS BEGIN -- 替换成你的真实数据表名,示例为PumpsStatus INSERT INTO [dbo].[PumpsStatus] ( [Frequency1], [Power1], [Db1], [Efficiency1], [Frequency2], [Power2], [Db2], [Efficiency2], [Frequency3], [Power3], [Db3], [Efficiency3], [Frequency4], [Power4], [Db4], [Efficiency4], [Frequency5], [Power5], [Db5], [Efficiency5], [Frequency6], [Power6], [Db6], [Efficiency6], [Frequency7], [Power7], [Db7], [Efficiency7], [Frequency8], [Power8], [Db8], [Efficiency8], [Frequency9], [Power9], [Db9], [Efficiency9], [Frequency10], [Power10], [Db10], [Efficiency10], [SolarDateTime], [Date] ) VALUES ( @Frequency1, @Power1, @Db1, @Efficiency1, @Frequency2, @Power2, @Db2, @Efficiency2, @Frequency3, @Power3, @Db3, @Efficiency3, @Frequency4, @Power4, @Db4, @Efficiency4, @Frequency5, @Power5, @Db5, @Efficiency5, @Frequency6, @Power6, @Db6, @Efficiency6, @Frequency7, @Power7, @Db7, @Efficiency7, @Frequency8, @Power8, @Db8, @Efficiency8, @Frequency9, @Power9, @Db9, @Efficiency9, @Frequency10, @Power10, @Db10, @Efficiency10, @SolarDateTime, @DATE ) END
额外注意事项
- 确保替换后的表名确实存在于
dbo架构下,且表的列名、数据类型和存储过程参数完全匹配 - 修正后记得重新创建存储过程,再执行测试
- 确认执行存储过程的账号拥有目标表的插入权限
内容的提问来源于stack exchange,提问作者hmahdavi
相关产品推荐
相关产品推荐

