Jesper TMedlem sedan nov. 20017 058 inlägg
Varför måste jag ange en inparameter på denna OUTPUT?
ALTER PROCEDURE suv_setget
(
/* Deklarera outputvariabel */
@guid uniqueidentifier OUTPUT
)
AS
/* Sätt in en ny post */
INSERT into SecUploadValider (suv_datetime) Values (GETDATE())
/* Hämta senaste posten och lägg in guid i outputvariabeln*/
SELECT @guid=suv_guid from SecUploadValider where suv_id = @@identity
RETURN
LarsGMedlem sedan dec. 200012 465 inlägg
vad menas? I vilket sammanhang måste du ange en input parameter?
Jesper TMedlem sedan nov. 20017 058 inlägg
När jag kör den i access så kräver den inparameter av mig.
Jesper TMedlem sedan nov. 20017 058 inlägg
Alltså det är ingen Access SP utan en MS Sql
Jag bara kör den via Access.
LarsGMedlem sedan dec. 200012 465 inlägg
Det låter mer som ett fel i Access. Svårt att göra något åt i så fall.
Jesper TMedlem sedan nov. 20017 058 inlägg
tohaMedlem sedan dec. 1999698 inlägg
Ett litet tips: undvik helst @@identity i SqlServer, andvänd heller SCOPE_IDENTITY().
Jesper TMedlem sedan nov. 20017 058 inlägg
toha skrev:
Ett litet tips: undvik helst @@identity i SqlServer, andvänd heller SCOPE_IDENTITY().
Varför är det bättre?
tohaMedlem sedan dec. 1999698 inlägg
Både SCOPE_IDENTITY() och @@identity returnerar senaste identity inom den aktuella sessionen men SCOPY_IDENTITY() returnerar för den aktuella queryn, stored proceduren, triggern etc.
Ett scenario skulle kunna vara att du har en insert-trigger på en tabell som lägger in värden i en annan tabell. Då returnerar @@identity id:t för den andra tabellen.