@@IDENTITY pro více záznamů   otázka

SQL, Databáze

Dobrý den,

mám dotaz ohledně získání ID pro skupinu záznamů, které byly vloženy v rámci jedné transakce.

Na SQL Serveru mám stored proceduru která obcahuje něco jako toto:

INSERT INTO dbo.table_zkousky(typZkousky,IDtelesa,hodnota,stari)
SELECT typZkousky,IDtelesa,hodnota,stari FROM @tmpSeznam

kde @tmpSeznam je pomocná proměnná typu table, kde mám záznamy pro vložení.

Pomocí tohoto dotazu se vloží např. 5 záznamů do tabulky table_zkousky. Je nějaká možnost jak získat ID (tzn. PK záznamu) pro všech 5 právě vložených záznamů? @@IDENTITY vrátí pouze ID posledního vloženého záznamu. Rád bych ID záznamu zapsal do logu aplikace.

Asi by to šlo vyřešit triggerem, ale je i nějaká jiná cesta?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A nemůže být OUTPUT proměnná taky typu TABLE? Nevím to z hlavy, jen nápad...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To nevím, ale to zde celkem nehraje roli, protože já ty ID nepotřebuji vracet aplikaci, já s nimi potřebuji pracovat v rámci stored procedury.

Potřebuji zjistit, jak získat ID (primary key) právě vložených záznamů do určité tabulky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To skutečně vypadá, že nejlepší řešení bude trigger.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud potřebujete logovat inserty, tak bych na to šel opravdu triggerem. Zachytíte to i když někdo bude tabulku měnit napřímo.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback