私は、SQL Server 2008 を使用しています。ストアド プロシージャは、テーブルにいくつかの値を挿入し、挿入された値を返します。nvarchar
主キーとして使用しています。したがって、最後に挿入された値を選択するためにscopeidentity()
関数を使用していますが、問題は値を挿入しているが、最後に挿入された値を返していないことです。コードは次のとおりです。
CREATE PROCEDURE cms_AddOwnerSession
@sessionId nvarchar(max),
@ownerId int,
@ownerName nvarchar(50),
@username nvarchar(30),
@password nvarchar(30)
AS
BEGIN
IF(@sessionId <> NULL)
BEGIN
INSERT INTO OwnerSession
(SessionId,
OwnerId,
OwnerName,
Username,
[Password])
VALUES
(@sessionId,
@ownerId,
@ownerName,
@username,
@password)
SET @sessionId = SCOPE_IDENTITY()
END
SELECT
ISNULL (SessionId,'NULL') 'sessionId',
ISNULL (OwnerId,0) 'ownerId',
ISNULL (OwnerName,'') 'ownerName',
ISNULL (Username,'') 'username',
ISNULL ([Password],'') 'password'
FROM OwnerSession
WHERE SessionId = @sessionId
END
GO