Vraag : Duplicaat entires om in Opgeslagen procedure worden gewijzigd

hallo, heeft

We twee sp's wat dubbele doelstellingen om in de periode van het lijst bussinessorg overzicht acesss

columns maakt binnen te gaan is:  Bussinessorgreviewperiod acess_ID (PK)

Business_ID
ReviewPeriod_ID

Aprrsaiallock.


here is

1) HRBusiness_Org_Insert



- 2) BusinessOrgReviewPeriodAccess_INS



HRBussiness_org_insert

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER twee van SP [dbo]. [HRBusiness_Org_Insert]
(
@Parent_BusinessOrg_ID int., nvarchar
@BusinessOrg_Name (128),
@RequestingEmployeeID int
)
AS

DECLARE
@parentLFT int.,
@parentIndentation int.,
@newBusOrgID int

if ((uitgezochte telling (businessOrg_id) van businessorg waar Name=@BusinessOrg_Name) = 0)
Begin
BEGINT met TRANSACTION

            -- De Bus van het tussenvoegsel UITGEZOCHTE Org
@parentLFT = LFT
VAN BusinessOrg
WAAR BusinessOrg_ID = @Parent_BusinessOrg_ID
UITGEZOCHTE @parentIndentation/>
VAN BusinessOrg
WAAR BusinessOrg_ID = @Parent_BusinessOrg_ID

UPDATE VASTGESTELDE BusinessOrg
RGHT = RGHT + 2
WAAR RGHT > @parentLFT

UPDATE BusinessOrg
VASTGESTELD LFT = LFT + 2
WAAR LFT > @ParentLFT
TUSSENVOEGSEL/>
(Parent_BusinessOrg_ID, Inkeping, LFT, RGHT, Actief, ImageFileName,
ImageFilePath, Naam, CheckedOut_By, Created_By_EmpID, Created_DateTime)
VALUES
(@Parent_BusinessOrg_ID,/> @ParentIndentation
@ParentLFT + 1,
@ParentLFT + 2,
1, ONGELDIGE
,
„. /images/“,
@BusinessOrg_Name,
@RequestingEmployeeID,
@RequestingEmployeeID,
getDate ())

ALS @@ERROR > 0
de Fout die van BEGIN
RAISERROR 50001 'in table'< br BusinessOrg/> de TERUGKEER van TRANSACTION
-1
END

opnemen @newBusOrgID = IDENT_CURRENT („BusinessOrg“)

PLAATSTE            -- Maak ontbrekende die scenariobescheiden op op het ouderorg.
TUSSENVOEGSEL IN BusOrgScenarioXref
(BusinessOrg_ID, Scenario_ID, ReviewPeriod_ID, Created_DateTime, Created_By_EmpID, Updated_DateTime, Updated_By_EmpID) worden gebaseerd
SELECT
@newBusOrgID,
x.Scenario_ID,
x.ReviewPeriod_ID,
getdate (),
@RequestingEmployeeID,
getdate (), BESTAAT er
@RequestingEmployeeID
FROM
BusOrgScenarioXref x
WHERE
x.BusinessOrg_ID = @Parent_BusinessOrg_ID
EN NIET (
UITGEZOCHTE xx.*
VAN BusOrgScenarioXref xx
WAAR x.Scenario_ID = xx. Scenario_ID
EN x.ReviewPeriod_ID = xx.ReviewPeriod_ID
EN xx.BusinessOrg_ID = @newBusOrgID
)

ALS @@ERROR > 0
het opnemen van de Fout van BEGIN
RAISERROR 50001 ' in table'< br BusOrgScenarioXref/> de TERUGKEER van TRANSACTION
-1
END

            -- Maak ontbrekende die config bescheiden op op het ouderorg.
TUSSENVOEGSEL IN BusinessOrgConfigOptionXref
(BusinessOrg_ID, ReviewPeriod_ID, ConfigOption_ID, IsSelected, Created_By_EmpID, Created_DateTime,
Updated_By_EmpID, Updated_DateTime) worden gebaseerd
SELECT
@newBusOrgID,
x.ReviewPeriod_ID,
x.ConfigOption_ID,
x.IsSelected,
@RequestingEmployeeID,
getdate (),
@RequestingEmployeeID, BESTAAT er
getdate ()
FROM
BusinessOrgConfigOptionXref x
WHERE
x.BusinessOrg_ID = @Parent_BusinessOrg_ID
EN NIET (
UITGEZOCHTE xx.*
VAN BusinessOrgConfigOptionXref xx
WAAR x.ReviewPeriod_ID = xx.ReviewPeriod_ID
EN x.ConfigOption_ID = xx.ConfigOption_ID
EN xx.BusinessOrg_ID = @newBusOrgID
)

ALS @@ERROR > 0
de Fout die van BEGIN
RAISERROR 50001 'in/>f table'< br BusinessOrgConfigOptionXre de TERUGKEER van TRANSACTION
-1
END

opnemen            -- Maak ontbrekende die config bescheiden op op het ouderorg.
TUSSENVOEGSEL IN BusinessOrgReviewPeriodAccess
(BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked) worden gebaseerd
SELECT
@newBusOrgID,
p.ReviewPeriod_ID, BESTAAT er
p.AppraisalsLocked
FROM
BusinessOrgReviewPeriodAccess p
WHERE
p.BusinessOrg_ID = @Parent_BusinessOrg_ID
EN NIET (
UITGEZOCHTE pp.*
VAN BusinessOrgReviewPeriodAccess pp
WAAR p.ReviewPeriod_ID = pp.ReviewPeriod_ID
EN p.AppraisalsLocked = pp.AppraisalsLocked
EN pp.BusinessOrg_ID = @newBusOrgID
)

ALS @@ERROR > 0
de Fout van BEGIN
RAISERROR 50001 'opnemend in br van BusinessOrgReviewPeriodAccess table' de TERUGKEER van TRANSACTION
-1
END

            -- Maak bescheiden voor de betiteling van het talentenplan op parent
TUSSENVOEGSEL IN BusOrgMngrLvlRoleXref
(BusinessOrg_ID, ManagerLevel_ID, AuthorRole_ID, Created_By_Emp_ID, Created_Datetime,
Updated_By_Emp_ID, Updated_DateTime) worden gebaseerd op
SELECT
@newBusOrgID,
p.ManagerLevel_ID,
p.AuthorRole_ID,
@RequestingEmployeeID,
getdate (),
@RequestingEmployeeID, BESTAAT er
getdate ()
FROM
BusOrgMngrLvlRoleXref p
WHERE
p.BusinessOrg_ID = @Parent_BusinessOrg_ID
EN NIET (
UITGEZOCHTE pp.*
VAN BusOrgMngrLvlRoleXref pp
WAAR p.ManagerLevel_ID = pp.ManagerLevel_ID
EN p.AuthorRole_ID = pp.AuthorRole_ID
EN pp.BusinessOrg_ID = @newBusOrgID
)

ALS @@ERROR > 0
de Fout die van BEGIN
RAISERROR 50001 ' opnemend in table'< br BusOrgMngrLvlRoleXref/> het TERUGSCHROEVEN VAN PRIJZEN TRANSACTION
het TUSSENVOEGSEL van de TERUGKEER -1
END

IN BusOrgMngrLvlRoleSectionXref
(BusOrgMngrLvlRoleXref_ID, Section_ID, IsSelected, ColumnPosition, Rangschikkend,
Created_By_Emp_ID, Created_DateTime, Updated_By_Emp_ID, Updated_DateTime)
SELECT
c.BusOrgMngrLvlRoleXref_ID,
px. Section_ID,
px.IsSelected,
px.ColumnPosition,
px. Rangschikkend, SLUIT aan
@RequestingEmployeeID,
getdate (),
@RequestingEmployeeID,
getdate ()
FROM
BusOrgMngrLvlRoleXref c
BINNEN bij BusOrgMngrLvlRoleXref p OP p.ManagerLevel_ID = c.ManagerLevel_ID
EN p.AuthorRole_ID = c.AuthorRole_ID
EN p.BusinessOrg_ID = @Parent_BusinessOrg_ID
EN c.BusinessOrg_ID = @newBusOrgID
                  BINNEN SLUIT me aan bij BusOrgMngrLvlRoleSectionXref px OP p.BusOrgMngrLvlRoleXref_ID = px.BusOrgMngrLvlRoleXref_ID

ALS @@ERROR > 0
de Fout die van BEGIN
RAISERROR 50001 'in/>ef table'< br BusOrgMngrLvlRoleSectionXr de TERUGKEER van TRANSACTION
-1
END

opnemen TRANSACTION

BEGAAT            -- Keer nieuwe ID.
UITGEZOCHTE @newBusOrgID

End
Else
Begin
-1 de periode _acess
GO
/****** Voorwerp/>


USE als van Businessorg_id
End


2) Bussinessorgreview selecteren:  StoredProcedure [dbo]. [BusinessOrgReviewPeriodAccess_INS] de Datum van het Manuscript: het 12:17 van 06/30/2010: 50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER [dbo]. [BusinessOrgReviewPeriodAccess_INS]
(
@intBusinessOrgID int
)
AS

INSERT IN dbo.BusinessOrgReviewPeriodAccess (BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked)
SELECT @intBusinessOrgID, ReviewPeriod_ID, 0
FROMReviewPeriod
WHERE StatusCode <> 'UPCM'< br/>
please/>

kennen

Antwoord : Duplicaat entires om in Opgeslagen procedure worden gewijzigd

Ik veronderstel u het tussenvoegsel wilt verhinderen als het nauwkeurige verslag reeds bestaat.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
VERANDER PROCEDURE [dbo]. [BusinessOrgReviewPeriodAccess_INS]
(
      @intBusinessOrgID      int.
)
ZOALS

TUSSENVOEGSEL IN dbo.BusinessOrgReviewPeriodAccess (BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked)
SELECTEER @intBusinessOrgID, ReviewPeriod_ID, 0
VAN dbo.ReviewPeriod
WAAR StatusCode <> „UPCM“
-- Controle als het niet reeds bestaan 
EN NIET BESTAAT (
 SELECTEER 1 
 VAN dbo.BusinessOrgReviewPeriodAccess
 WAAR BusinessOrg_ID = @intBusinessOrgID
 EN ReviewPeriod_ID =ReviewPeriod_ID
 EN AppraisalsLocked=0
)
Andere oplossingen  
 
programming4us programming4us