· 8 years ago · Apr 24, 2018, 02:06 PM
1ALTER PROCEDURE Eating (@knightColor CHAR(42), @tpFigure CHAR(42) = 'knight') AS
2BEGIN
3 DECLARE my_cursor CURSOR FOR
4 SELECT cid FROM cm
5 WHERE tp = 'knight' AND color = @knightColor;
6
7 OPEN my_cursor;
8
9 DECLARE @KnightCid INT;
10 CREATE TABLE #Answer (cid INT, color CHAR(42), tp CHAR(42), x CHAR, y INT);
11
12 FETCH my_cursor INTO @KnightCid;
13 WHILE (@@FETCH_STATUS = 0) BEGIN
14 INSERT INTO #Answer
15 SELECT * FROM dbo.KnightAttack(@KnightCid);
16 FETCH FROM my_cursor INTO @KnightCid;
17 END
18 IF(@tpFigure != 'knight')
19 SELECT 'This procedure does not work fot this type'
20 ELSE IF (EXISTS (SELECT * FROM #Answer))
21 SELECT * FROM #Answer
22 ELSE
23 SELECT 'No eating today :('
24
25 CLOSE my_cursor;
26 DEALLOCATE my_cursor;
27END