问题描述
- SQLSERVER能为存储过程设置默认值吗?
-
现在的情况是这样
针对服务器旧版和新版
某一个存储过程中,旧版的输入参数只有3个,而新版的输入参数有5个。
我希望在执行该存储过程的时间,若输入参数只有三个(后面两个输入参数缺失)时,
该存储过程自动为后面两个缺失值的输入参数赋一个默认值。
请问可以只修改存储过程达到这目的的?用的SQLSERVER是2005版的
解决方案
例子:
create procedure pro_Name(
@cNo varchar(8),
@cName varchar(20)= '%'
)
as
begin
SQL 语句集……
end;
go
exec pro_name '10002' ,'%'
或
exec pro_name '10002'
都可以 ,不会报错。
解决方案二:
在新数据库建表的时候,在后两个属性加上default:
解决方案三:
原
CREATE PROCEDURE [dbo].[up_TEST]
@A nvarchar(50),
@B nvarchar(50),
@C nvarchar(50)
AS
改为
CREATE PROCEDURE [dbo].[up_TEST]
@A nvarchar(50),
@B nvarchar(50),
@C nvarchar(50),
@D nvarchar(50) = '01' ,
@E nvarchar(50) = '02'
AS
时间: 2025-01-20 09:12:37