Vorrei semplicemente inviare alcune informazioni da un semplice client a un file di registro e quindi utilizzare l'identità creata per un'ulteriore elaborazione.Uso corretto della funzione SCOPE_IDENTITY all'interno della stored procedure semplice
corretto è il seguente utilizzo di SCOPE_IDENTITY()
?
CREATE PROCEDURE [dbo].[LogSearch]
@userName VARCHAR(50),
@dateTimeStart DATETIME
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [WH].[dbo].[tb_Searches]
(
[UserName],
[DateTimeStart]
)
SELECT @userName,
@dateTimeStart;
SELECT SCOPE_IDENTITY() AS ProfileKey;
END;
EDIT
Ho modificato il codice al seguente:
ALTER PROCEDURE [dbo].[LogSearch]
@userName VARCHAR(50),
@dateTimeStart DATETIME
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [WH].[dbo].[tb_Searches]
(
[UserName],[DateTimeStart]
)
VALUES (@userName, @dateTimeStart);
RETURN SCOPE_IDENTITY();
END;
Sembra OK. Ci sono molti modi per farlo - usando il valore di ritorno, usando un parametro 'output'. – Oded
Quali sono le tue preoccupazioni specifiche con questo? – Oded
Sto costruendo la mia prima applicazione client-server da qui la domanda di base. Questo proc sarà la prima cosa da eseguire e l'ID verrà quindi passato lungo la linea, ovvero l'ID tornerà al client e poi verrà trasferito in altre 3 o 4 stored procedure. – whytheq