Ich möchte einfach einige Informationen von einem einfachen Client an eine Protokolldatei senden und dann die für die weitere Verarbeitung erstellte Identität verwenden.Korrekte Verwendung der Funktion SCOPE_IDENTITY in einer einfachen gespeicherten Prozedur
Ist die folgende Verwendung von SCOPE_IDENTITY()
korrekt?
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
I-Code der folgenden bearbeitet haben:
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;
Sieht OK aus. Es gibt viele Möglichkeiten, dies zu tun - indem Sie den Rückgabewert verwenden, indem Sie einen 'output' Parameter verwenden. – Oded
Was sind Ihre speziellen Anliegen? – Oded
Ich baue meine erste Client-Server-Anwendung daher die Grundfrage. Dieser Proc ist die erste Sache, die ausgeführt wird, und die ID wird dann in der Zeile weitergereicht, dh die ID wird zum Client zurückkommen und dann in 3 oder 4 andere gespeicherte Prozeduren übergeben. – whytheq