Sql server System.Data.SqlClient.SqlException过程没有参数,并且提供了参数。我应该如何着手修复此错误?

Sql server System.Data.SqlClient.SqlException过程没有参数,并且提供了参数。我应该如何着手修复此错误?,sql-server,Sql Server,我在VisualStudio中构建了一个数据库应用程序。当我运行时,会出现以下错误: System.Data.SqlClient.SqlException:程序sp_select_number_of_films没有提供参数和参数 我知道错误的意思,但我不知道如何在我的SQL代码中修复它。我已经尝试了一些小的调整,但我仍然得到相同的错误 存储过程: CREATE PROCEDURE [dbo].[sp_select_number_of_films] (@REC_ID_OUTPUT in

我在VisualStudio中构建了一个数据库应用程序。当我运行时,会出现以下错误:

System.Data.SqlClient.SqlException:程序sp_select_number_of_films没有提供参数和参数

我知道错误的意思,但我不知道如何在我的SQL代码中修复它。我已经尝试了一些小的调整,但我仍然得到相同的错误

存储过程:

CREATE PROCEDURE [dbo].[sp_select_number_of_films]
     (@REC_ID_OUTPUT int OUTPUT)
AS
    SELECT COUNT(*)  
    FROM Film.Title;


EXEC dbo.sp_select_number_of_films
GO

应称之为:

DECLARE @sth INT;
Exec dbo.sp_select_number_of_films @sth OUTPUT;
但在存储过程中,您需要分配输出变量:

CREATE PROCEDURE [dbo].[sp_select_number_of_films]( @REC_ID_OUTPUT int OUTPUT)
AS SELECT  @REC_ID_OUTPUT = COUNT(*)
FROM Film.Title;

并且您应该避免使用。

旁注命名存储过程:您不应该为存储过程使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!我这样做了,但它仍然给了我完全相同的错误。