我只想簡單地將一些信息從簡單的客戶端發送到日誌文件,然後使用創建的標識進行進一步處理。正確使用簡單存儲過程中的SCOPE_IDENTITY函數
以下是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;
編輯
我編輯的代碼爲以下:
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;
看起來不錯。有很多方法可以做到這一點 - 使用返回值,使用'output'參數。 – Oded 2013-03-23 20:31:11
你對此有什麼具體問題? – Oded 2013-03-23 20:32:54
我正在構建我的第一個客戶端 - 服務器應用程序,因此是基本問題。這個過程將首先運行,然後ID將傳遞到該行,即ID將返回給客戶端,然後傳遞到3或4個其他存儲過程。 – whytheq 2013-03-23 20:33:16