我有这个查询,它只需要进行简单的插入。但是我遇到了这个错误:
Msg 8146,Level 16,State 2,Procedure InsertEducationCategory,Line 0
过程InsertEducationCategory没有提供参数和参数。
知道为什么会这样吗?
IF EXISTS (SELECT name FROM sys.procedures WHERE name = 'InsertEducationCategory')
DROP PROCEDURE InsertEducationCategory
GO
CREATE PROCEDURE InsertEducationCategory
AS
BEGIN
INSERT INTO Education_Category(Category_ID, Category_Name) VALUES(NEWID(), N'کاردانی')
INSERT INTO Education_Category(Category_ID, Category_Name) VALUES(NEWID(), N'کارشناسی')
INSERT INTO Education_Category(Category_ID, Category_Name) VALUES(NEWID(), N'کارشناسی ارشد')
INSERT INTO Education_Category(Category_ID, Category_Name) VALUES (NEWID(), N'دکترا')
END
GO
EXEC InsertEducationCategory GO
由于
答案 0 :(得分:0)
您正在调用一个没有参数的存储过程,但是在调用它时会提供参数。
如果它有参数,它看起来像:
CREATE PROCEDURE InsertEducationCategory
@Parameter1 nvarchar(5), -- or whatever type
@Parameter2 int -- could be a different type...
AS
此时,您可以拨打InsertEducationCategory('abcde', 16)
,但按照您定义的方式,只有拨打InsertEducationCategory()
才有意义。
答案 1 :(得分:0)
" GO"在最后一行被解释为SP的参数。只需将该行修改为:
EXEC InsertEducationCategory
GO