0

私のアプリケーションは、私のユース ケースの必要に応じてストアド プロシージャを呼び出します。ストアド プロシージャは、主キー制約と外部キー制約によって関連付けられた 2 つのテーブルにレコードを挿入します。

これはPatientNumber、in Visittable がテーブルに存在する必要があることを意味しPatientます。

この手順をデバッグすると、初期値を設定した後に値が表示されません。

私はこれが初めてです、助けてください。

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[Add_Patient_Visit]
AS
BEGIN TRANSACTION
    SET NOCOUNT ON; 

    declare @Visit_Number Varchar(50)
    declare @Prescription_Number Varchar(50)
    declare @Visit_Date Datetime = GETDate()

    set @Visit_Number = '25684956555'
    set @Visit_Date = GETDATE()
    set @Prescription_Number = '653214658'

    INSERT INTO Visits(Visit_Number, Visit_Date, Patient_Number)
    VALUES(@Visit_Number, @Visit_Date, @Patient_Number)

    IF @@ERROR <> 0
    BEGIN 
        ROLLBACK
        RETURN
    END

    declare @Patient_Number Varchar(50)
    declare @FirstName Varchar(50)
    declare @LastName Varchar(50)
    declare @Trible Varchar(50)
    declare @Gender Varchar(5)
    declare @Date_Of_Birth Datetime

    INSERT INTO Patient(Patient_Number, FirstName, LastName, Tribe, Gender, Date_Of_Birth)
    VALUES (@Patient_Number, @FirstName, @LastName, @Trible, @Gender, @Date_Of_Birth)

   IF @@ERROR <> 0
   BEGIN
       ROLLBACK
       RETURN
   END

   COMMIT
GO
4

1 に答える 1

1

上記の手順に誤りがあります。テーブル「Visits」に挿入する際に、宣言する前に @Patient_Number を使用しています。次のように、最初に宣言します。

declare @Patient_Number Varchar(50)
declare @Visit_Number Varchar(50)
declare @Prescription_Number Varchar(50)
declare @Visit_Date Datetime = GETDate()
set @Visit_Number = '25684956555'
set @Visit_Date=GETDATE()
set @Prescription_Number='653214658'

Insert into Visits(Visit_Number,Visit_Date,Patient_Number)
Values(@Visit_Number,@Visit_Date,@Patient_Number)
IF @@ERROR <> 0
BEGIN 
ROLLBACK
RETURN
END


declare @FirstName Varchar(50)
declare @LastName Varchar(50)
declare @Trible Varchar(50)
declare @Gender Varchar(5)
declare @Date_Of_Birth Datetime



INSERT INTO Patient(Patient_Number,FirstName,LastName,Tribe,Gender,Date_Of_Birth)
VALUES (@Patient_Number,@FirstName,@LastName,@Trible,@Gender,@Date_Of_Birth)
IF @@ERROR <> 0
BEGIN
ROLLBACK
RETURN

END
COMMIT
于 2013-01-30T11:45:25.047 に答える