【发布时间】:2017-06-28 11:21:35
【问题描述】:
我需要帮助我完成一项应该在 SQL 中创建存储过程的任务。我是 SQL 新手,这是我学习的第一门数据库课程。我正在使用 SQL Server Management Studio 2012。
我有 2 张桌子、桌子书和桌子书本。表书有三列,isbn(主键)、title 和 nrOfCopies。 bookcopy 表也有三列,barcode(主键)、status 和 isbn(引用表 book 中 isbn 列的外键)。
因此,任务是为特定的 isbn 值(具有相同 isbn 编号的行数)创建一个存储过程,以更新 book-table 中的 nrOfCopies-column。特定 isbn 编号的行数将是 book-table 中该 isbn 编号的 nrOfCopies 列中的值。
我试着这样做:
CREATE PROCEDURE spNrOfBooks
AS
BEGIN
DECLARE @calcNr AS INT
SET @calcNR = (SELECT COUNT(isbn) FROM bookcopy)
UPDATE book SET nrOfCopies = @calcNr WHERE isbn LIKE (SELECT isbn FROM bookcopy)
END
当我执行此过程时,我收到一条错误消息 (Msg 512)。
有人可以通过指出我可以做些什么来解决这个问题来帮助我吗?
【问题讨论】:
-
我怀疑 Msg 512 是该错误消息的唯一文本。完整显示
-
你需要先阅读一门关于sql的课程。你的程序有太多问题。开始解释有很多问题
-
内部查询(SELECT isbn FROM bookcopy)带来了所有的行并用在一个类似的表达式中
-
“所以任务是为特定的 isbn 值创建一个存储过程”。这表明您的存储过程应该带一个参数。
-
你能推荐一些好的教程吗?我可以在哪里阅读你的意思?非常感谢您的 cmets!
标签: sql sql-server stored-procedures sql-server-2012