|
CREATE PROCEDURE sp_AppendProjFetTo_tmpTable
AS
--- Create Temporary Table *
CREATE TABLE #ProjAppendFet (
MID smallint NOT NULL ,
ModID smallint NOT NULL ,
FtrID int NOT NULL ,
ProjID smallint NOT NULL ,
RevDate smalldatetime NULL ,
LastUser varchar (12) NULL
)
ON [PRIMARY]
ALTER TABLE #ProjAppendFet WITH
NOCHECK ADD
CONSTRAINT [PK_ProjAppendFet] PRIMARY KEY NONCLUSTERED
(
[MID],
[ModID],
[FtrID],
[ProjID]
)
CREATE INDEX [FtrID] ON #ProjAppendFet(FtrID
CREATE INDEX [MID] ON #ProjAppendFet(MID)
CREATE INDEX [ModID] ON #ProjAppendFet(ModID)
CREATE INDEX [ProjID] ON #ProjAppendFet(ProjID)
--- Append All Features from the Form Criteria
INSERT #ProjAppendFet
(MID, ModID, FtrID, ProjID, RevDate, LastUser)
SELECT tblModelMar.MID, tblModelMar.ModID,
tblFtrToProject.FtrID, tblFtrToProject.ProjID,
tblProjectCriteria.RevDate, tblProjectCriteria.LastUser
FROM tblFtrToProject INNER
JOIN
tblProjectCriteria ON
tblFtrToProject.ProjID = tblProjectCriteria.ProjID INNER JOIN
tblModelMar ON
tblProjectCriteria.ModID = tblModelMar.ModID
--- RIGHT JOIN will Check for Existing Records before
Appending
INSERT INTO tblFtrToMod ( MID, ModID, FtrID,
ProjID_S, RevDate, LastUser )
SELECT #ProjAppendFet.MID, #ProjAppendFet.ModID,
#ProjAppendFet.FtrID,
#ProjAppendFet.ProjID, #ProjAppendFet.RevDate, #ProjAppendFet.LastUser
FROM tblFtrToMod RIGHT
JOIN
#ProjAppendFet ON
tblFtrToMod.MID = #ProjAppendFet.MID AND
tblFtrToMod.ModID = #ProjAppendFet.ModID AND
tblFtrToMod.FtrID = #ProjAppendFet.FtrID AND
tblFtrToMod.ProjID_S = #ProjAppendFet.ProjID
WHERE
(tblFtrToMod.MID Is Null) AND
(tblFtrToMod.ModID Is Null) AND
(tblFtrToMod.FtrID Is Null) AND
(tblFtrToMod.ProjID_S Is Null)
--- * Table is unique to the User/Session and Dropped
at end of Stored Procedure
|