首页 > 解决方案 > 根据使用存储过程在 TSQL 中删除的数据返回消息

问题描述

我正在构建一个简单的纸牌游戏计分程序,并且我正在设置一个存储过程来清除我表中以前的玩家和分数。

我正在尝试让存储过程返回“玩家已清除。准备开始!” 如果有从表中删除的记录。否则,如果表已经是空的,我希望它说“准备开始!”。

我的最新尝试如下。我还尝试过声明一个变量并将每个结果设置为该变量并在最后返回该变量。

每当我运行存储过程时,它只会返回一个空的“玩家”列。我知道这是来自 select 语句,但我正在努力弄清楚如何返回上面的文本。

提前致谢!

CREATE PROCEDURE new_game 
AS
BEGIN
    SELECT player 
    FROM Score

    IF @@ROWCOUNT > 0
    BEGIN
        DELETE FROM dbo.Score

        PRINT 'Players cleared. Ready to start!';
    END
    ELSE 
    BEGIN 
        PRINT 'Ready to start!';
    END
END

标签: sql-servertsql

解决方案


请试试这个。

    CREATE PROCEDURE new_game AS
    BEGIN
     IF EXISTS( SELECT TOP 1 player FROM Score)
     BEGIN
       DELETE FROM dbo.Score
       SELECT 'Players cleared. Ready to start!' AS Players;
     END
     ELSE 
     BEGIN 
       SELECT 'Ready to start!' AS Players;
     END
    END

推荐阅读