Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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
Mysql SQL存储过程_Mysql_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

Mysql SQL存储过程

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 =

我在SQL中有一个关于存储过程的作业,我很难理解这个问题。所以我想不出一个解决办法

问题是:

编写一个名为AddJobService的存储过程,该过程将接受JobNumber、ServiceCode、Notes和Hours,并将执行以下任务:8分 a。如果没有包含该工号的工单记录,则发出相应的消息

b。如果存在相关的作业记录,请添加作业服务记录

c。调整作业表中的相应列

这就是我到目前为止所做的:

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