Diskuze: trigger mssql
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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)?
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"
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;
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
Zobrazeno 6 zpráv z 6.