使用一个参数作为输入执行存储过程

Aad*_*ada 1 stored-procedures sql-server-2008

我正在使用存储过程.我的存储过程是

Create PROCEDURE [dbo].[SP_HouseHoldMembers]
(
@StudentID varchar
)
AS
BEGIN
SELECT MemberID,FirstName+''+LastName,Age,Sex,Education
FROM Student SD 
WHERE SD.StudentID=@StudentID
END
Run Code Online (Sandbox Code Playgroud)

我这样执行:

EXEC [dbo].[SP_HouseHoldMembers] @StudentID='123'
Run Code Online (Sandbox Code Playgroud)

但它不显示结果,当我执行它时,只需使用简单查询将其123作为输入,然后它就会得到所需的结果.

请有人告诉我哪里出错了

Ale*_* K. 6

您使用此参数:

@StudentID varchar
Run Code Online (Sandbox Code Playgroud)

这是一个1字符串字符串,因此传递'123'被截断为'1'

代替;

@StudentID int
Run Code Online (Sandbox Code Playgroud)

要么

@StudentID varchar(<insert appropriate size>)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢您的帮助.什么是荒谬的错误:) (2认同)