Sql server 过程或函数“usp_UserAddNewUser”需要参数
我写了一个存储过程,但我得到了一个错误。请引导我,如何摆脱它 错误:过程或函数“usp_UserAddNewUser”需要未提供的参数“@FirstName” 代码:Sql server 过程或函数“usp_UserAddNewUser”需要参数,sql-server,stored-procedures,parameters,insert,Sql Server,Stored Procedures,Parameters,Insert,我写了一个存储过程,但我得到了一个错误。请引导我,如何摆脱它 错误:过程或函数“usp_UserAddNewUser”需要未提供的参数“@FirstName” 代码: 看来我发现了你的问题 你给我的是: USE [MVC4DB] GO DECLARE return_value int EXEC return_value = [dbo].[usp_UserAddNewUser] SELECT 'Return Value' = return_value GO 我的示例的正确语法是 exe
看来我发现了你的问题 你给我的是:
USE [MVC4DB] GO DECLARE return_value int EXEC return_value = [dbo].[usp_UserAddNewUser] SELECT 'Return Value' = return_value GO
我的示例的正确语法是
exec usp_UserAddNewUser 'Joker','TheJoke','Joking@Joker.com','12345678','At my cave','Mr.J','Secret'
例如,不能将select语句插入存储过程,因为存储过程需要您创建的参数
如果您真的希望存储过程如您所愿,我会像这样修改您的代码
create proc usp_UserAddNewUser
(@FirstName)
as
begin
INSERT INTO [dbo].[Registration]
([FirstName]
,[LastName]
,[Email]
,[ContactNumber]
,[Address]
,[UserName]
,[Password])
VALUES
select [FirstName],[LastName],[Email],[ContactNumber],[Address],[UserName],[Password] from employee where firstname = @FirstName
end
请注意,使用此语法,您可能会受到SQLi攻击,请阅读有关sp_executesql的内容,以及有关sp_executesql和Sql注入的更多信息使用[MVC4DB]GO DECLARE return_value int EXEC return_value=[dbo]。[usp_UserAddNewUser]选择'return value'=return_value GO当我键入EXEC usp_UserAddNewUser'Joker'时,“笑话”Joking@Joker.com“,”12345678“,”在我的洞穴“,”J先生“,”秘密“然后得到错误消息102,级别15,状态1,第1行“小丑”附近语法错误。我可以得到你的skype id吗?我需要你的帮助我做了你的上述代码,但问题仍然是一样的。我可以得到你的skype id吗?对不起,我还在忙着工作,但是,我能问一下你从哪里得到要插入的数据吗?特别是insert语句的值?我是从一张桌子上猜出来的。以及有关如何将参数传递到存储过程的代码。如何调用此存储过程?这很可能是问题所在-这段代码很好我也认为这是问题所在,如果他想传递一个参数,我给他一个替代方案,因为他检索值的表在一个表中。但如果这是一个代码,那就不同了。@mar是的,现在我的问题已经解决了,谢谢你的回复
create proc usp_UserAddNewUser
(@FirstName)
as
begin
INSERT INTO [dbo].[Registration]
([FirstName]
,[LastName]
,[Email]
,[ContactNumber]
,[Address]
,[UserName]
,[Password])
VALUES
select [FirstName],[LastName],[Email],[ContactNumber],[Address],[UserName],[Password] from employee where firstname = @FirstName
end