日期:2014-05-16  浏览次数:20647 次

sql存储过程 参数有默认值怎么传
ALTER PROCEDURE  [dbo].[Car]
(
@CardNo varchar (50)   ,
@OriginalCarId varchar (50)=‘1’
}。。。。
执行的时候 exec  [dbo].[Car]  ‘sdfsd’ 
这样的情况不给第二个参数是可以的。
如果是
ALTER PROCEDURE  [dbo].[Car]
(
@OriginalCarId varchar (50)=‘1’   ,
@CardNo varchar (50)
}。。。。
这样情况。想不给@OriginalCarId这个参数,调用的时候如何给参数
------解决方案--------------------
CREATE PROCEDURE p_test
@CardNo varchar (50)   ,
@OriginalCarId varchar (50)='1'
AS 
BEGIN
PRINT 'cardno';
PRINT @CardNo;
PRINT 'OriginalCarId';
PRINT @OriginalCarId;
END 
go

CREATE PROCEDURE p_test_2
@OriginalCarId varchar (50)='1',
@CardNo varchar (50)   
AS 
BEGIN
PRINT 'cardno';
PRINT @CardNo;
PRINT 'OriginalCarId';
PRINT @OriginalCarId;
END 


EXEC p_test 'sdfsd'
EXEC p_test_2 default,'sdfsd'  --default