Я переписываю хранимую процедуру, которая использует int identity (1,1) в> 10 временных таблицах как способ объединения этих временных таблиц в операторе select. Ниже приведена более короткая версия того, как структура кода, но в хранимой процедуре, которую я там редактирую, эта структура используется для возврата данных из каждой временной таблицы.
CREATE TABLE #temp_MemberInfo
( RecID int identity(1,1),
MemberMBI varchar(13),
MemberName varchar(50),
MemberAddress varchar(150), -- DMP
MemberAddress2 varchar(100), -- DMP
MemberCity varchar(50),
MemberState varchar(3),
MemberZip varchar(11),
MemberMedicalRecordNo varchar(20),
MemberIsMale varchar(10),
MemberIsFemale varchar(10)
)
CREATE TABLE #temp_ProviderInfo
(
RecID int identity(1,1),
ProviderNPI varchar(13),
ProviderName varchar(60), -- DMP
ProviderAddress varchar(150), -- DMP
ProviderAddress2 varchar(100), -- DMP
ProviderCity varchar(40),
ProviderState varchar(3),
ProviderZip varchar(11),
ProviderTelephone varchar(15) )
Select *
from #temp_MemberInfo
Inner Join #temp_ProviderInfo on #temp_ProviderInfo.RecID = #temp_MemberInfo.RecID
Альтернативой, которую я могу придумать, было бы использовать существующий первичный ключ в базе данных, но мне нужно будет присоединить дополнительную таблицу в операторах обновления. Это лучше с точки зрения производительности? Есть ли другие альтернативы, которые я не рассматриваю?