错误:仅本地编译模块支持参数

时间:2019-01-03 09:18:27

标签: sql sql-server stored-procedures

我想创建一个存储过程。参数之一....

@ID int not null,

给我一​​个错误:

  

NOT NULL参数仅受本机编译模块支持,   内联表值函数除外。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

如果您想为存储过程使用required参数,则只需声明如下参数,然后检查param是否为空

Create procedure MyProc
@ID int
as
    if @ID is null
    begin
      -- handle the null case here
    end
--  rest of your query

如果参数是可选的,则将null分配给该参数,如果在过程调用中未提供任何输入,它将作为默认值

Create procedure MyProc
@ID int = null
as
--  your query

答案 1 :(得分:0)

如果SP开头的参数为null,则会引发错误

IF @ID IS NULL 
  BEGIN 
      RAISERROR (15600,-1,-1,'myProcedure'); 
  END