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
我想使用從tableB到tableA的SQL/Stored Procedure輸入行。例如,當插入第一行'Home'時,它不存在於MastercategoryDesc中,因此將在MasterCategoryID中插入'4'。第二行應該在MasterCategoryID中再次保留'4'。 下面的代碼是在第一行之後,MastercategoryID對所有行保持不變。我不知道如何在插入新行時跟蹤id。在保留ID的同時在表格中插入行
p.s.請不要回復說我需要使用IDENTITY()索引。我必須保持表結構相同,不能改變它。謝謝
的[TSQL插入記錄和追蹤ID]可能重複(http://stackoverflow.com/questions/17194722/tsql-inserting-records-and-track-id) – Luv
我想你應該重新命名Desc字段,我想是Description,因爲Desc是保留的並且令人困惑。 – christiandev
嗨Luv - 你幫我解決了上一個問題,但是我需要同時插入多個記錄,而不是1個(手動)。如代碼所示。我將不勝感激,如果你能再次幫助我 –