TABLEA
MasterCategoryID MasterCategoryDesc
1 Housing
1 Housing
1 Housing
2 Car
2 Car
2 Car
3 Shop
TABLEB
ID Description
1 Home
2 Home
3 Plane
4 Car
INSERT into TableA
(
[MasterCategoryID]
[MasterCategoryDesc]
)
Select
case when (Description) not in (select MasterCategoryDesc from TableA)
then (select max(MasterCategoryID)+1 from TableA)
else (select top 1 MasterCategoryID from TableA where MasterCategoryDesc = Description)
end as [MasterCategoryID]
,Description as MasterCategoryDesc
from TableB
SQL/ストアド プロシージャを使用して、tableB から tableA に行を入力したいと考えています。たとえば、最初の行「Home」を挿入すると、MastercategoryDesc に存在しないため、MasterCategoryID に「4」が挿入されます。2 行目は、MasterCategoryID で再び「4」を保持する必要があります。以下のコードはそれを行いますが、最初の行の後、MastercategoryID はすべての行で同じままです。新しい行の挿入中にIDを追跡する方法がわかりません。
ps Pls は、IDENTITY() インデックスを使用する必要があると言って返信しません。テーブル構造を同じに保つ必要があり、変更できません。ありがとう