0

自分の ID を別の列に x 行数で追加したいと考えています。ストアド プロシージャでこのコードを使用して、これを 2 行分繰り返すことができます。

ALTER PROCEDURE [dbo].[InsertReport3] @incdate INT,
                                      @inctime VARCHAR(7),
                                      @inv1    VARCHAR(30),
                                      @inv2    VARCHAR(30),
                                      @inv3    VARCHAR(30),
                                      @inctype VARCHAR(20),
                                      @incnar  TEXT,
                                      @incloc  TEXT,
                                      @no      INT
AS
    INSERT INTO IncidentReport
                (I_Date_Incident,
                 I_Time,
                 IncidentType,
                 I_Narrative,
                 I_Location,
                 I_ID,
                 U_no_fk)
    VALUES     (@incdate,
                @inctime,
                @inctype,
                @incnar,
                @incloc,
                @inv1,
                @no);

    UPDATE Incidentreport
    SET    I_reportno = @@IDENTITY
    WHERE  I_no = @@IDENTITY;

    INSERT INTO IncidentReport
                (I_reportno,
                 I_Date_Incident,
                 I_Time,
                 IncidentType,
                 I_Narrative,
                 I_Location,
                 I_ID,
                 U_no_fk)
    VALUES     (@@IDENTITY,
                @incdate,
                @inctime,
                @inctype,
                @incnar,
                @incloc,
                @inv2,
                @no);

そのコードで 3 つまで取得したら 1 つ増加し、前の ID を引っ張るだけだと思いますか?

4

1 に答える 1

0

MS SQL Server を使用していると仮定すると、SCOPE_IDENTITY()の代わりに使用する必要があり@@identityます。理由はここにあります。これにより、発生している問題が解決すると思います。

于 2012-06-14T02:03:38.403 に答える