1

ストアドプロシージャを使用しています。私のストアドプロシージャは

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

私はそれを次のように実行します:

EXEC [dbo].[SP_HouseHoldMembers] @StudentID='123'

しかし、結果は表示されません。これを入力として使用する単純なクエリを使用して実行すると123、目的の結果が得られます。

誰かが私がどこで間違っているのか教えてください

4

2 に答える 2

6

このパラメータを使用する場合:

@StudentID varchar

これは1文字の文字列であるため、受け渡し'123'は次のように切り捨てられます。'1'

その代わり;

@StudentID int

また

@StudentID varchar(<insert appropriate size>)
于 2012-07-23T16:05:24.123 に答える
2

パラメータを次のように定義しましたvarchar-つまり、1文字の長さの可変長文字列!!

あなたはそれvarcharを明確な長さにする必要があります!

Create PROCEDURE [dbo].[SP_HouseHoldMembers]
(@StudentID varchar(20) )
AS
BEGIN
   SELECT MemberID,FirstName + '' + LastName, Age, Sex, Education
   FROM Student SD 
    WHERE SD.StudentID = @StudentID
END
于 2012-07-23T16:05:31.240 に答える