正在将sql存储过程参数分配给变量

vd8tlhqk  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(300)

我肯定有一些合理的逻辑/最佳实践,但如果可能的话,我想向我解释一下。查看前一位员工编写的sql存储过程,他总是为每个参数声明一个变量,并将该变量设置为参数值,然后在存储过程的其余部分使用该变量。不只是使用参数和赋值给变量有什么附加值?

ALTER procedure [dbo].[sp_shipping]
(
@p_date varchar(10),
@p_status varchar(10),
@p_cust nvarchar(20)
)
as

set nocount on

declare @v_date datetime,
        @v_status varchar(10),
        @v_cust nvarchar(20)

select @v_date = convert(datetime,@p_date),
       @v_status = @p_status,
       @v_cust = @p_cust
aij0ehis

aij0ehis1#

这可能只是一种偏好/风格,但值得注意的是,它确实对@p\u date变量有影响,

select @v_date = convert(datetime,@p_date)

如果无法将参数转换为datetime,并且它存储转换的结果,这样以后就不必在存储过程中重复转换,则会引发错误。

相关问题