看帮助,最全面了,有例子有代码有用法。
你的这个,根据参数值是不是默认值来判断就可以了。
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'au_info2' AND type = 'P')
DROP PROCEDURE au_info2
GO
USE pubs
GO
CREATE PROCEDURE au_info2
@lastname varchar(30) = 'D%',
@firstname varchar(18) = '%'
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
ON a.au_id = ta.au_id INNER JOIN titles t
ON t.title_id = ta.title_id INNER JOIN publishers p
ON t.pub_id = p.pub_id
WHERE au_fname LIKE @firstname
AND au_lname LIKE @lastname
GO
au_info2 存储过程可以用多种组合执行。下面只列出了部分组合:
EXECUTE au_info2
-- Or
EXECUTE au_info2 'Wh%'
-- Or
EXECUTE au_info2 @firstname = 'A%'
-- Or
EXECUTE au_info2 '[CK]ars[OE]n'
-- Or
EXECUTE au_info2 'Hunter', 'Sheryl'
-- Or
EXECUTE au_info2 'H%', 'S%'
可写可不写的参数创建时加默认值,另一个必须写的不加,至于执行出来的效果要看你内部的语句了
设置第二个参数的默认值就是了。
CREATE PROCEDURE XXXX
@paramA INT,
@paramB VARCHAR(8)=NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT @paramA,@paramB;
END;
GO
EXEC XXXX 1;
GO
EXEC XXXX 1,'safdfsdf';
GO
EXEC XXXX;
GO
MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地