Uložená procedura EcWriteEntity
pomocná procedura pro zápis dat do DI - hlavně pro soubory sestávající z více než jednoho řádku EcENTITY
parametr
typ
směr
popis
@EntName
nvarchar (100)
Požadované
Vstup
Název subjektu - popis viz tabulka EcENTITY, pole "name".
@BulkId
int Nepovinné
InputOutput
Žádost o převod bulk_id - viz poznámky v popisu tabulky EcENTITY
použít hodnotu NULL pro vytvoření prvního řádku
EcENTITY;
procedura vytvoří novou hodnotu bulk_id a předá ji zpět.
pro zápis dalších řádků EcENTITY (v rámci jednoho hromadného zápisu) použijte hodnotu, kterou tato procedura vrátila v tomto parametru při zápisu prvního řádku EcENTITY.
@EnClassID
nvarchar(10)
Volitelně
Vstup
Typ subjektu
pokud je vynecháno, použije se hodnota "ITEM".
RetValue
bigint
ReturnValue
EcENTITY.id vloženo
Zdrojový kód:
-- =============================================
-- Autor: Bronislav SIMUNEK
-- Datum vytvoření: 2016-07-01
-- Popis: Vložit požadavek na přenos dat
-- =============================================
CREATEPROCEDURE[dbo].[EcWriteEntity]
@EntNameNVARCHAR (100),
@BulkIDINT=-1 OUT,
@EntClassIDNVARCHAR (10)='ITEM'
AS
BEGIN
--check mandatory fields:
IF @EntClassID IS NULL
BEGIN
RAISERROR('@EntClassID parameter is NULL',16,1);
RETURN-1;
END
IF @EntName IS NULL
BEGIN
RAISERROR('@EntName parameter is NULL',16,1);
RETURN-1;
END
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements :
SET NOCOUNT ON;
DECLARE @InsertedID BIGINT;
DECLARE@resultTABLE (bidint,ridbigint);
IF @BulkID IS NULL OR @BulkID < 0
BEGIN
INSERT INTO EcENTITY
(ent_class_id,name,comm_dir,bulk_id)
OUTPUT INSERTED.bulk_id, INSERTED.id INTO @result
VALUES(@EntClassID,@EntName,1,ISNULL((SELECTMAX(bulk_id)FROMEcENTITY),0)+1);
END
ELSE
BEGIN
INSERT INTO EcENTITY
(ent_class_id,name,comm_dir,bulk_id)
OUTPUT INSERTED.bulk_id,INSERTED.ID INTO @result
VALUES
( @EntClassID, @EntName, 1, ISNULL((SELECT MAX(bulk_id) FROM EcENTITY), 0) + 1);
END
ELSE
BEGIN
INSERT INTO EcENTITY
(ent_class_id, name, comm_dir, bulk_id)
OUTPUT INSERTED.bulk_id, INSERTED.ID INTO @result
VALUES
( @EntClassID, @EntName, 1, @BulkID);
END
SET @BulkID = (SELECT TOP 1 bid FROM @result);
SET @InsertedID = (SELECT TOP 1 rid FROM @result);
RETURN @InsertedID;
END
Last updated
Was this helpful?