Tôi muốn gửi một số thông tin từ một máy khách đơn giản đến tệp nhật ký và sau đó sử dụng danh tính được tạo để xử lý tiếp.Sử dụng đúng chức năng SCOPE_IDENTITY trong quy trình lưu trữ đơn giản
Việc sử dụng SCOPE_IDENTITY()
có đúng không?
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
tôi đã chỉnh sửa mã để điều sau đây:
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;
Có vẻ OK. Có nhiều cách để làm điều này - sử dụng giá trị trả về, sử dụng tham số 'output'. – Oded
Các mối quan tâm cụ thể của bạn với điều này là gì? – Oded
Tôi đang xây dựng ứng dụng máy khách-khách hàng đầu tiên của mình do đó là câu hỏi cơ bản. Proc này sẽ là thứ đầu tiên chạy và ID sẽ được chuyển xuống dòng, tức là ID sẽ quay trở lại client và sau đó được chuyển thành 3 hoặc 4 thủ tục khác được lưu trữ – whytheq