Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 找到字符串后获取要返回的值_Sql_Sql Server_Stored Procedures_Printing - Fatal编程技术网

Sql 找到字符串后获取要返回的值

Sql 找到字符串后获取要返回的值,sql,sql-server,stored-procedures,printing,Sql,Sql Server,Stored Procedures,Printing,如果在表中找到ISBN,我需要@r返回一个值 家庭作业问题:创建一个名为FindABookbyISBN的过程。它接受一个varchar20类型的参数@value,这是某人正在寻找的ISBN。如果该过程找到了书本,它将显示书本信息并返回1。如果找不到书,该过程将打印类似“找不到书”的内容并返回0 消息应如下所示: 找到isbn 9780393248968的书 1 0 IF OBJECT_ID ('FindABookbyISBN') IS NOT NULL DROP PROCEDURE

如果在表中找到ISBN,我需要@r返回一个值

家庭作业问题:创建一个名为FindABookbyISBN的过程。它接受一个varchar20类型的参数@value,这是某人正在寻找的ISBN。如果该过程找到了书本,它将显示书本信息并返回1。如果找不到书,该过程将打印类似“找不到书”的内容并返回0

消息应如下所示:

找到isbn 9780393248968的书

1
0


IF OBJECT_ID ('FindABookbyISBN') IS NOT NULL
    DROP PROCEDURE FindABookbyISBN

GO
CREATE PROCEDURE FindABookbyISBN @ISBN varchar(20) AS

IF EXISTS (SELECT * FROM BookInfo WHERE ISBN = @ISBN)
    BEGIN 
    PRINT 'Found book with ISBN ' + @ISBN

END

ELSE

BEGIN
    PRINT 'Cannot find book with ISBN ' + @ISBN

END

GO

--testing procedure

--success

Declare @r int

EXEC @r = FindABookByISBN '9780393248968'

Print @r

--failure

Declare @t int

EXEC @t = FindABookByISBN '1234' 

Print @t
找不到isbn为9780393248968的书

1
0


IF OBJECT_ID ('FindABookbyISBN') IS NOT NULL
    DROP PROCEDURE FindABookbyISBN

GO
CREATE PROCEDURE FindABookbyISBN @ISBN varchar(20) AS

IF EXISTS (SELECT * FROM BookInfo WHERE ISBN = @ISBN)
    BEGIN 
    PRINT 'Found book with ISBN ' + @ISBN

END

ELSE

BEGIN
    PRINT 'Cannot find book with ISBN ' + @ISBN

END

GO

--testing procedure

--success

Declare @r int

EXEC @r = FindABookByISBN '9780393248968'

Print @r

--failure

Declare @t int

EXEC @t = FindABookByISBN '1234' 

Print @t

戈登·林诺夫在评论部分回答了我的问题

我只需要为它添加一个返回值

IF EXISTS (SELECT * FROM BookInfo WHERE ISBN = @ISBN)
    BEGIN 
    PRINT 'Found book with ISBN ' + @ISBN
    Return 1
    END
    ELSE
    BEGIN
    PRINT 'Book was not found with ISBN ' + @ISBN
    END

GO

您的存储过程没有返回状态值。哦!非常感谢。我知道这很简单。感谢您的意见!你的作业不是很好。事实上的模式是成功返回零,错误/警告返回非零。对于未找到的条件,应返回1值。很高兴您提出了这个问题。这让我很困惑。因此,我的老师提供了信息最终应该是什么样子的,正如你所说的。她的例子:找到ISBN 9780393248968的书。。。0'找不到ISBN为1234的图书。。。1.但问题的措辞似乎是她在寻找相反的答案。我想她可能弄错了。什么是事实模式?忽略事实问题。你觉得我把这个搞错了吗?谢谢你的帮助!我不能说你是否在没有看到实际问题的情况下混淆了你的作业:-如果问题与列出的问题相同,那么她就把它倒过来了。我只是建议在真实世界中遵循这种模式,这可能与学术界有所不同。那将是一个很好的话题,可以在课堂上讨论。是的,我肯定会在周一提出来。再次感谢您的投入。