sqlserver如何创建一个带有可不用参数存储过程

有一个问题:如何创建一个带有两个参数的储存过程,在执行该储存过程时其中一个参数是必须写的,而另一个参数可写也可不写,但是写和不写所执行出来的结果又是不一样的?请高手指教!... 有一个问题:
如何创建一个带有两个参数的储存过程,在执行该储存过程时其中一个参数是必须写的,而另一个参数可写也可不写,但是写和不写所执行出来的结果又是不一样的?请高手指教!谢谢
展开
 我来答
下扬州啊
2013-09-12 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2109万
展开全部
看帮助,最全面了,有例子有代码有用法。
你的这个,根据参数值是不是默认值来判断就可以了。

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%'
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-09-12 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5121万
展开全部
可写可不写的参数创建时加默认值,另一个必须写的不加,至于执行出来的效果要看你内部的语句了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HJ_3000
2018-04-12 · TA获得超过563个赞
知道小有建树答主
回答量:1264
采纳率:78%
帮助的人:50.8万
展开全部
设置第二个参数的默认值就是了。
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmonkey
2021-05-15 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式