@somevalue = null を試してみましたが、その時はうまくいきました。しかし、今は機能していません。値がnullかどうかを確認する方法は? 簡単に言えば、@existPerson が null の場合、値をデータベースに INSERT する必要があります。ただし、存在する場合は -2 を返します。データベースをチェックインして、@nic = 100 と同じ値がないことを確認しました。それでも、-2 が返されます。考えられる理由は何ですか?どうもありがとう!
CREATE PROCEDURE [dbo].[addStudent]
@stuName varchar(50),
@address varchar(100),
@tel varchar(15),
@etel varchar(15),
@nic varchar (10),
@dob date
AS
BEGIN
SET NOCOUNT ON;
DECLARE @currentID INT
DECLARE @existPerson INT
SET @existPerson = (SELECT p_ID FROM Student WHERE s_NIC = @nic);
IF @existPerson = null
BEGIN
INSERT INTO Person (p_Name, p_RegDate, p_Address, p_Tel, p_EmergeNo, p_Valid, p_Userlevel)
VALUES (@stuName, GETDATE(), @address, @tel, @etel, 0, 'Student' );
SET @currentID = (SELECT MAX( p_ID) FROM Person);
INSERT INTO Student (p_ID, s_Barcode, s_DOB, s_NIC) VALUES (@currentID , NULL, @dob, @nic);
return 0;
END
ELSE
return -2;
END