Pouze tento týden sleva až 80 % na e-learning týkající se Swift
Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Avatar
Frantisek Jesatko:1.5.2018 7:35

Zravím potřebuji radu . Přidávám do DB (WF + Linq) data kde ID záznamu nastavuje databáze automaticky dále do řádku ukládám id uživatele . Já bych potřeboval udělat to , že do dalšího pole noveho zaznamu řádku uložim hodnotu id + id_uzivatele jako string. Tuto práci bych rád udělal na mssql serveru Triggrem nebo procedurou. Ale jak koukam tak to nějak nechápu. Teď to dělám kodem ve WF ale je to strašně pomalé. Díky za reakce

 
Odpovědět
1.5.2018 7:35
Avatar
Odpovídá na Frantisek Jesatko
Michal Štěpánek:1.5.2018 17:45

Nechápu, co přesně požaduješ.

Já bych potřeboval udělat to , že do dalšího pole noveho zaznamu řádku uložim hodnotu id + id_uzivatele jako string.

ID se přeci vytvoří samo v DB a ID_uzivatele získáš podle přihlášeného uživatele.
Proč jako "string"?
Nebo jak jsi to vlastně myslel?
Kdybys sem napsal "ten" kód, kterým to děláš, byli bychom moudřejší a lépe by se ti dalo pomoci.

Nahoru Odpovědět
1.5.2018 17:45
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Ilja Židkov
Člen
Avatar
Odpovídá na Michal Štěpánek
Ilja Židkov:1.5.2018 22:01

Podlě mě má na mysli připojit k vlastnosti IDENTITY jakýsi řetezec například E21. 21 se vygeneruje automaticky, zatímco 'E' se připojí během přidání (právě pomocí triggeru)?

 
Nahoru Odpovědět
1.5.2018 22:01
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Frantisek Jesatko:2.5.2018 5:19

Přesně tak při zakládání záznamu se spojením id uživatele a id záznamu z tohoto řetězce stane jednoznačný identifikátor který mi pak nikde nekoliduje při spojení dvou db. V současné chvíli to dělám tak že uložím záznam tim dostanu ID záznamu vyberu z db naposledy přidaný záznam a kodem spojim ty dve hodnoty a uložím do sloupce v tabulce. zdanlivě jednoduchá věc ale na můj vkus to trvá moc dlouho. Proto bych uvítal ten trigger .
řetezec pak vypada takto
id =1290
iduz = 4
idzas= "41290"

 
Nahoru Odpovědět
2.5.2018 5:19
Avatar
Ilja Židkov
Člen
Avatar
Ilja Židkov:2.5.2018 9:26

Nejsem si jist, jestli lze přímo upravovat sloupec označený jako IDENTITY. Co takhle vytvořit sloupec navíc?

USE Test;

CREATE TABLE Employees
(
        Id INT IDENTITY(1, 1) NOT NULL,
        EmployeeId AS 'emp_' + CAST(Id AS VARCHAR(11)) PERSISTED,
        [Name] NVARCHAR(50) NOT NULL,
);

INSERT INTO Employees ([Name])
VALUES ('John');

SELECT * FROM Employees;
Editováno 2.5.2018 9:27
 
Nahoru Odpovědět
2.5.2018 9:26
Avatar
Ghst
Člen
Avatar
Odpovídá na Frantisek Jesatko
Ghst:3.5.2018 12:49

Asi máš na mysli toto:

Po vložení dat do tabulky se spustí trigger (v kódu AFTER INSERT), triggermá přístup ke vloženým údajům v proměnné **INSERTED ** (updated/deleted v závislosti na typu triggeru).
Předpokládám že v kódu vkládáš do zíznamu ID_uživatele, případně upravíš triger tak, aby si ho našel

CREATE TRIGGER [muj_trigger]
  ON [cilova_tabulka]
  AFTER INSERT
AS
BEGIN
        --SELECT * FROM inserted        --vkladany řádek
        UPDATE [cilova_tabulka] SET stringId = CAST(i.ID AS nvarchar(50))+'-'+CAST(i.ID_uzivatele AS nvarchar(50))
FROM inserted AS i
END
Editováno 3.5.2018 12:52
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
3.5.2018 12:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.