为什么在CREATE PROCEDURE命令中允许使用DEFAULT关键字

时间:2011-02-01 00:35:03

标签: sql sql-server tsql

在以下语句中,将显示DEFAULT关键字,其中为参数定义了默认值。

CREATE PROCEDURE usp_Test
    @sp_param1 varchar(20) = DEFAULT
AS
    SELECT @sp_param1 AS myTest
;

为@ sp_param1分配了NULL。但是,The default value must be a constant or the NULL keyword.

为什么在这种情况下允许使用DEFAULT关键字?

1 个答案:

答案 0 :(得分:2)

DEFAULT关键字是您想要提供的东西的占位符,但实际上并不是NULL。

中最常见
exec SProcName 2, DEFAULT

即使提供了第二个参数,它实际上不是一个值,而是使用第二个参数的DEFAULT值的指令。

当在CREATE PROC中使用时,它会解析,但只会被视为NULL。