I have been given a job of taking two tables (trimmed down create scripts below) and merging their data into a third table.
CREATE TABLE dbo.Ztest_nominal
(
BMCode varchar(20) NOT NULL,
nomcode varchar(500) NOT NULL,
Description nvarchar(4000) NULL,
LanguageID int NOT NULL,
CONSTRAINT PK_Ztest_nominal PRIMARY KEY CLUSTERED (BMCode ASC)
)
CREATE TABLE dbo.Ztest_Participation
(
ParticipationID int IDENTITY(1,1) NOT NULL,
BMCode varchar(20) NOT NULL,
LatestVersionNo varchar(5) NOT NULL,
LastVersionSubmitted varchar(5) NOT NULL,
CONSTRAINT PK_Ztest_Participation PRIMARY KEY CLUSTERED (BMCode ASC)
)
The third tables columns to take the contents of above (basically the above two tables):
[ParticipationID] [int] IDENTITY(1,1) NOT NULL,
[BMCode] [varchar](20) NOT NULL,
[LatestVersionNo] [varchar](5) NOT NULL,
[LastVersionSubmitted] [varchar](5) NOT NULL,
[nomcode] [varchar](500) NOT NULL,
[Description] [nvarchar](4000) NULL,
[LanguageID] [int] NOT NULL
Ztest_nominal
has about 63,000,000 rows and Ztest_Participation
about 62,000
The sql I was going to use (with an insert into) is (I did have the inner select outside before I gave up and posted here!):
SELECT
p.ParticipationId,
p.LatestVersionNo,
n.*
FROM
Ztest_nominal n
INNER JOIN
(
SELECT
ParticipationId,
LatestVersionNo,
BMCode
FROM
Ztest_participation
WHERE
LatestVersionNo = LastVersionSubmitted
) p
ON p.BMCode = n.BMCode
However i feel its going need some optimisation so its not slow, also I've already had out of memory errors when running it.
Any help would be appreciated
BMCode
is shared from, or is there a relationship between these two tables?