Mysql SQL存储过程
我在SQL中有一个关于存储过程的作业,我很难理解这个问题。所以我想不出一个解决办法 问题是: 编写一个名为AddJobService的存储过程,该过程将接受JobNumber、ServiceCode、Notes和Hours,并将执行以下任务:8分 a。如果没有包含该工号的工单记录,则发出相应的消息 b。如果存在相关的作业记录,请添加作业服务记录 c。调整作业表中的相应列 这就是我到目前为止所做的:Mysql SQL存储过程,mysql,sql,sql-server,tsql,stored-procedures,Mysql,Sql,Sql Server,Tsql,Stored Procedures,我在SQL中有一个关于存储过程的作业,我很难理解这个问题。所以我想不出一个解决办法 问题是: 编写一个名为AddJobService的存储过程,该过程将接受JobNumber、ServiceCode、Notes和Hours,并将执行以下任务:8分 a。如果没有包含该工号的工单记录,则发出相应的消息 b。如果存在相关的作业记录,请添加作业服务记录 c。调整作业表中的相应列 这就是我到目前为止所做的: create procedure AddJobService (@JobNumber int =
create procedure AddJobService (@JobNumber int = null, @ServiceCode varchar(15) = null, @Notes varchar(200) = null, @Hours int = null)
as
if @JobNumber is null
Begin
RaisError ('Please provide information', 16,1)
End
else
if not exists(Select * from Job where JobNumber = @JobNumber)
Begin
RaisError (' Job Record Do not Exists ', 16,1)
End
else
begin
Begin Transaction
insert into JobService(ServiceCode, Notes, Hours)
Values ( @ServiceCode, @Notes, @Hours)
if @@ERROR <> 0
Begin
RaisError('Job Service Failed',16,1)
Rollback Transaction
End
End
我得到了这个错误
我真的不能做“C”部分?无法将值NULL插入到“ExtCost”列、表“LAB3.dbo.JobService”中;列不允许空值。插入失败。语句已终止。即使您不必在回答中显示ExtCost,但在向表JobService插入记录时,也需要输入ExtCost 若您可以修改JobService表方案,只需将ExtCost更改为nullable,否则您需要为ExtCost提供一个值,可能是“0”
insert into JobService(ServiceCode, Notes, Hours, ExtCost)
Values ( @ServiceCode, @Notes, @Hours, 0)
向我们展示您迄今为止在schemahi上取得的成就我发布了到目前为止我所拥有的东西您面临的错误是什么?让我们来看看这8个marksIs it sql server或mysql?在我看来像是sql server。另外,RaisError应该是RaiseError。谢谢!那莱瑟罗的那件衣服呢
CREATE PROCEDURE AddJobService
-- declaring input parameters
@JobNumber INT, @ServiceCode INT, @Notes VARCHAR (50), @Hours INT
AS
BEGIN
-- if null replace with empty space
SET @JobNumber = ISNULL (@JobNumber, 0)
SET @ServiceCode = ISNULL (@ServiceCode, 0)
SET @Notes = ISNULL (@Notes, '')
SET @Hours = ISNULL (@Hours, 0)
IF NOT EXISTS (SELECT 1 FROM Jobs WHERE JobNumber = @Jobnumber)
--no record
BEGIN
RAISEERROR ('No information for that job number!',16,1);
END
ELSE
-- record
BEGIN
INSERT INTO Jobs (JobNumber, ServiceCode, Notes, [Hours])
VALUES (@JobNumber, @ServiceCode, @Notes, @Hours)
END
END GO