私は3つのテーブルを持っています-
1. Country (CountryName, CID (PK- AutoIncrement))
2. State (SID(PK- AutoIncrement), StateName, CID (FK to Country)
3. City (CityName, CID, SID (FK to State)
次に、CountryName、StateName、および CityName を含む 3 つのテーブルに名前のみを挿入する必要があります。ID を更新する必要があります。
Create PROCEDURE sp_place(
@CountryName char(50),
@StateName varchar(50),
@CityName nchar(20)
)
AS
DECLARE @CountryID int, @StateID int, @CityID int;
Set NOCOUNT OFF
BEGIN TRANSACTION
INSERT INTO dbo.Country VALUES (@CountryName);
SET @CountryID = SCOPE_IDENTITY();
IF @@ERROR <> 0
BEGIN
ROLLBACK
RETURN
END
Insert into dbo.State VALUES (@StateName, @CountryID);
SET @StateID = SCOPE_IDENTITY();
IF @@ERROR <> 0
BEGIN
ROLLBACK
RETURN
END
Insert into dbo.City VALUES (@CityName, @StateID);
SET @CityID= SCOPE_IDENTITY();
Commit
国を 2 回入力しても、値は変更されません。例: インドに CountryID=1 の値を入力した場合、インドに再度入力したときに、CountryID の値が増加することはありません。
どうやってそれを実行したのですか?挿れるたびにSPが変化する。