在存储过程上声明变量时 VARCHAR(MAX) = NULL 是什么意思
What does VARCHAR(MAX) = NULL mean when declaring variables on stored procedure
我在尝试学习朋友创建存储过程的查询时发现了这个。我想知道在声明变量时 varchar(max) = null
是什么意思?
ALTER PROCEDURE [dbo].[usp_EmployeeBasicData]
@EmployerCode VARCHAR(MAX) = NULL,
@LocationCode VARCHAR(MAX) = NULL ,
@UserId VARCHAR(MAX) = NULL,
@Module VARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON
SELECT DISTINCT
a.EmployerCode,
当参数值未在 EXEC 语句中明确指定时,它是参数的默认值。 NULL 没有什么特别的(在这种情况下),它可以是任何其他合适的值。
例如:
CREATE PROCEDURE MyGreatSP
@Param1 int,
@Param2 varchar(50) = 'AAAA'
AS
SELECT @Param1, @Param2;
GO
EXEC MyGreatSP @Param1 = 1
go
--- 1, AAAA
EXEC MyGreatSP @Param1 = 1, @Param2 = 'BBBBB'
go
--- 1, BBBBB
更多信息:https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/specify-parameters
我在尝试学习朋友创建存储过程的查询时发现了这个。我想知道在声明变量时 varchar(max) = null
是什么意思?
ALTER PROCEDURE [dbo].[usp_EmployeeBasicData]
@EmployerCode VARCHAR(MAX) = NULL,
@LocationCode VARCHAR(MAX) = NULL ,
@UserId VARCHAR(MAX) = NULL,
@Module VARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON
SELECT DISTINCT
a.EmployerCode,
当参数值未在 EXEC 语句中明确指定时,它是参数的默认值。 NULL 没有什么特别的(在这种情况下),它可以是任何其他合适的值。
例如:
CREATE PROCEDURE MyGreatSP
@Param1 int,
@Param2 varchar(50) = 'AAAA'
AS
SELECT @Param1, @Param2;
GO
EXEC MyGreatSP @Param1 = 1
go
--- 1, AAAA
EXEC MyGreatSP @Param1 = 1, @Param2 = 'BBBBB'
go
--- 1, BBBBB
更多信息:https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/specify-parameters