Frage : Doppelte in gespeichertem Verfahren geändert zu werden entires,

hallo, haben

We SP zwei, das doppelte Zielsetzungen an den Tabelle bussinessorg Berichtszeitraum acesss teilnehmen lässt, die,

columns sind:  Bussinessorgreviewperiod acess_ID (PK)

Business_ID
ReviewPeriod_ID

Aprrsaiallock.


here sind das

1) HRBusiness_Org_Insert



- 2) BusinessOrgReviewPeriodAccess_INS



HRBussiness_org_insert

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER VERFAHREN [dbo]. [HRBusiness_Org_Insert]
(
@Parent_BusinessOrg_ID int,
das @BusinessOrg_Name nvarchar (128),
@RequestingEmployeeID int
)
AS

DECLARE
ANFANGEN @parentLFT int,
@parentIndentation int,
@newBusOrgID int

if ((Zählimpuls (businessOrg_id) vom businessorg vorwählen in dem Name=@BusinessOrg_Name), = 0)
Begin
TRANSACTION

n            -- Bus Org
AUSERWÄHLTES @parentLFT = LFT
einsetzen vom BusinessOrg
, IN DEM BusinessOrg_ID = @Parent_BusinessOrg_ID

@parentIndentation = Indentation
VON BusinessOrg
IN DEM BusinessOrg_ID = @Parent_BusinessOrg_ID

UPDATE BusinessOrg
, das RGHT = RGHT + 2
WO RGHT > @parentLFT

UPDATE GESETZTES BusinessOrg
LFT = LFT + 2
WO LFT > @ParentLFT

EINSATZ IN BusinessOrg
GESETZT ist (Parent_BusinessOrg_ID, Einrückung, LFT, RGHT, Active, ImageFileName,
ImageFilePath, Name, CheckedOut_By, Created_By_EmpID, Created_DateTime)
VALUES
(@Parent_BusinessOrg_ID,
@ParentIndentation + 1,
@ParentLFT + 1,
@ParentLFT + 2,
1,
NULL,
„. /images/“,
@BusinessOrg_Name,
@RequestingEmployeeID,
@RequestingEmployeeID,
getDate ())

WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'Störung, die BusinessOrg table'< Br/> PREISSENKUNG TRANSACTION
in RÜCKHOL-1
END

GESETZTES @newBusOrgID = in IDENT_CURRENT („BusinessOrg")

einsetzt            -- Die fehlenden Drehbuchaufzeichnungen verursachen, die auf dem Elternteil org.
EINSATZ BusOrgScenarioXref
basieren (BusinessOrg_ID, Scenario_ID, ReviewPeriod_ID, Created_DateTime, Created_By_EmpID, Updated_DateTime, Updated_By_EmpID)
SELECT
in @newBusOrgID,
x.Scenario_ID,
x.ReviewPeriod_ID,
in getdate (),
in @RequestingEmployeeID,
in getdate (),
@RequestingEmployeeID
FROM
BusOrgScenarioXref in x
WHERE
x.BusinessOrg_ID = @Parent_BusinessOrg_ID
UND NICHT EXISTIERT (
AUSERWÄHLTES xx.*
vom BusOrgScenarioXref xx
WO x.Scenario_ID = xx. Scenario_ID
UND x.ReviewPeriod_ID = xx.ReviewPeriod_ID
UND xx.BusinessOrg_ID = @newBusOrgID
)

WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'Störungseinfügung in BusOrgScenarioXref table'< Br/> PREISSENKUNG TRANSACTION
RÜCKHOL-1
END

            -- Die fehlenden Configaufzeichnungen verursachen, die auf dem Elternteil org.
EINSATZ BusinessOrgConfigOptionXref
basieren (BusinessOrg_ID, ReviewPeriod_ID, ConfigOption_ID, IsSelected, Created_By_EmpID, Created_DateTime,
Updated_By_EmpID, Updated_DateTime)
SELECT
in @newBusOrgID,
x.ReviewPeriod_ID,
x.ConfigOption_ID,
x.IsSelected,
in @RequestingEmployeeID,
in getdate (),
in @RequestingEmployeeID,
getdate ()
FROM
BusinessOrgConfigOptionXref x
WHERE
x.BusinessOrg_ID = @Parent_BusinessOrg_ID
UND NICHT EXISTIERT (
AUSERWÄHLTES xx.*
BusinessOrgConfigOptionXref vom xx
WO x.ReviewPeriod_ID = xx.ReviewPeriod_ID
UND x.ConfigOption_ID = xx.ConfigOption_ID
UND xx.BusinessOrg_ID = @newBusOrgID
)

WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'Störung, die in BusinessOrgConfigOptionXref table'< Br/> PREISSENKUNG TRANSACTION
RÜCKHOL-1
END

einsetzt            -- Die fehlenden Configaufzeichnungen verursachen, die auf dem Elternteil org.
EINSATZ IN BusinessOrgReviewPeriodAccess
basieren (BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked)
SELECT
@newBusOrgID,
p.ReviewPeriod_ID,
p.AppraisalsLocked
FROM
BusinessOrgReviewPeriodAccess p
WHERE
p.BusinessOrg_ID = @Parent_BusinessOrg_ID
UND NICHT EXISTIERT (
AUSERWÄHLTES pp.*
BusinessOrgReviewPeriodAccess vom pp
WO p.ReviewPeriod_ID = pp.ReviewPeriod_ID
UND p.AppraisalsLocked = pp.AppraisalsLocked
UND pp.BusinessOrg_ID = @newBusOrgID
)

WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'die Störung, die in BusinessOrgReviewPeriodAccess table'< Br/> PREISSENKUNG TRANSACTION
RÜCKHOL-1
END

einsetzt            -- Aufzeichnung für die Talentplanbezeichnungen verursachen, die auf parent
EINSATZ BusOrgMngrLvlRoleXref
basieren (BusinessOrg_ID, ManagerLevel_ID, AuthorRole_ID, Created_By_Emp_ID, Created_Datetime,
Updated_By_Emp_ID, Updated_DateTime)
SELECT
in @newBusOrgID,
p.ManagerLevel_ID,
p.AuthorRole_ID,
in @RequestingEmployeeID,
in getdate (),
in @RequestingEmployeeID,
getdate ()
FROM
BusOrgMngrLvlRoleXref p
WHERE
p.BusinessOrg_ID = @Parent_BusinessOrg_ID
UND NICHT EXISTIERT (
AUSERWÄHLTES pp.*
vom BusOrgMngrLvlRoleXref pp
WO p.ManagerLevel_ID = pp.ManagerLevel_ID
UND p.AuthorRole_ID = pp.AuthorRole_ID
UND pp.BusinessOrg_ID = @newBusOrgID
)

WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'Störung Einfügung in BusOrgMngrLvlRoleXref table'< Br/> PREISSENKUNG TRANSACTION
RÜCKHOL-1
END

EINSATZ IN BusOrgMngrLvlRoleSectionXref
(BusOrgMngrLvlRoleXref_ID, Section_ID, IsSelected, ColumnPosition, Ordnungszahl,
Created_By_Emp_ID, Created_DateTime, Updated_By_Emp_ID, Updated_DateTime)
SELECT
c.BusOrgMngrLvlRoleXref_ID,
px. Section_ID,
px.IsSelected,
px.ColumnPosition,
px. Ordnungszahl,
@RequestingEmployeeID,
getdate (),
@RequestingEmployeeID, das INNERE
getdate ()
FROM
BusOrgMngrLvlRoleXref c
VERBINDEN BusOrgMngrLvlRoleXref p AUF p.ManagerLevel_ID = c.ManagerLevel_ID
UND p.AuthorRole_ID = c.AuthorRole_ID
UND p.BusinessOrg_ID = @Parent_BusinessOrg_ID
UND c.BusinessOrg_ID = @newBusOrgID
                  INNER BusOrgMngrLvlRoleSectionXref px AUF p.BusOrgMngrLvlRoleXref_ID = px.BusOrgMngrLvlRoleXref_ID

, WENN @@ERROR > 0
BEGIN
RAISERROR 50001 'die Störung, die in BusOrgMngrLvlRoleSectionXref table'< Br/> PREISSENKUNG TRANSACTION
RÜCKHOL-1
END

einsetzt, TRANSACTION

FESTLEGEN            -- Neues ID.
zurückbringen, das AUSERWÄHLTES @newBusOrgID

End
Else
Begin
-1 als Businessorg_id
End


2) Bussinessorgreview Zeitraum _acess



USE [PMTP]
GO
/****** Gegenstand vorwählen:  StoredProcedure [dbo]. [BusinessOrgReviewPeriodAccess_INS] Index-Datum: 06/30/2010 12:17: 50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


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

INSERT IN dbo.BusinessOrgReviewPeriodAccess (BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked)
SELECT @intBusinessOrgID, ReviewPeriod_ID, 0
FROM ReviewPeriod
WHERE Status Code <> 'UPCM'< Br/>


please mich Änderungen am gekommenen doppelten Überobjectives

Antwort : Doppelte in gespeichertem Verfahren geändert zu werden entires,

Ich voraussetze g, dass Sie den Einsatz verhindern möchten, wenn die genaue Aufzeichnung bereits existiert.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
VERFAHREN [dbo] ÄNDERN. [BusinessOrgReviewPeriodAccess_INS]
(
      @intBusinessOrgID      int
)
WIE

EINSATZ IN dbo.BusinessOrgReviewPeriodAccess (BusinessOrg_ID, ReviewPeriod_ID, AppraisalsLocked)
@intBusinessOrgID, ReviewPeriod_ID, 0 VORWÄHLEN
VON dbo.ReviewPeriod
WO Status Code <> „UPCM“
-- Überprüfen, ob er nicht bereits existiert tat
UND NICHT EXISTIERT (
 1 VORWÄHLEN 
 VON dbo.BusinessOrgReviewPeriodAccess
 WO BusinessOrg_ID = @intBusinessOrgID
 UND ReviewPeriod_ID =ReviewPeriod_ID
 UND AppraisalsLocked=0
)
Weitere Lösungen  
 
programming4us programming4us