34 lines
873 B
SQL
34 lines
873 B
SQL
CREATE PROCEDURE [session].[ReadSession]
|
|
@Name [session].[SessionName]
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON -- Performance boost
|
|
SET XACT_ABORT ON -- Rollback transaction on error
|
|
SET TRANSACTION ISOLATION LEVEL SNAPSHOT -- Ignores data changes that happen after the transaction begins.
|
|
|
|
BEGIN TRANSACTION
|
|
|
|
-- Session
|
|
SELECT
|
|
sess.[Name],
|
|
p1.[Name] as Player1,
|
|
p2.[Name] as Player2
|
|
FROM [session].[Session] sess
|
|
INNER JOIN [user].[User] p1 on sess.Player1Id = p1.Id
|
|
LEFT JOIN [user].[User] p2 on sess.Player2Id = p2.Id
|
|
WHERE sess.[Name] = @Name;
|
|
|
|
-- Player moves
|
|
SELECT
|
|
mv.[From],
|
|
mv.[To],
|
|
mv.IsPromotion,
|
|
piece.[Name] as PieceFromHand
|
|
FROM [session].[Move] mv
|
|
INNER JOIN [session].[Session] sess ON sess.Id = mv.SessionId
|
|
LEFT JOIN [session].Piece piece on piece.Id = mv.PieceIdFromHand
|
|
WHERE sess.[Name] = @Name;
|
|
|
|
COMMIT
|
|
END
|