bob*_*obs 5 sql t-sql sql-server
在以下语句中,将显示DEFAULT关键字,其中为参数定义了默认值.
CREATE PROCEDURE usp_Test
@sp_param1 varchar(20) = DEFAULT
AS
SELECT @sp_param1 AS myTest
;
Run Code Online (Sandbox Code Playgroud)
NULL被分配给@ sp_param1.但是,默认值必须是常量或NULL关键字.
为什么在这种情况下允许使用DEFAULT关键字?
DEFAULT 关键字是您想要提供的内容的占位符,但实际上甚至不是 NULL。最常见于
exec SProcName 2, DEFAULT
Run Code Online (Sandbox Code Playgroud)
尽管提供了第二个参数,但它实际上并不是一个值,而是使用第二个参数的默认值的指令。
当在 CREATE PROC 本身中使用时,它会进行解析,但只是将其视为 NULL。