我有一个关于在SQL Server中设计存储过程的一般性问题:
我有一个网站,用户可以使用最多30个属性进行搜索(这意味着他可以使用所有30个标准,或者他可能只使用5个)。
您将如何为此设计存储过程?在设计这个程序时你会记住什么?
提前致谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以这样做:
create procedure foo
@param1 int = null,
@param2 int = null,
@param3 int = null,
...
然后在你的where子句中你可以这样做:
where (@param1 = null or @param1 = somevalue)
and (@param2 = null or @param2 = somevalue)
....
通过使用可为空的参数,您可以轻松地将任何参数组合传递给存储过程。请注意观察执行计划并确保不会发生参数嗅探。