【发布时间】:2015-01-07 19:34:07
【问题描述】:
我看到之前在 this post 中已经提出了这个问题,并且还查看了 WHEN-THEN 构造,但它确实没有回答一些问题。
目前在代码中使用 StringBuilder 构建 SQL 查询,如下所示:
buildSearchQuery.Append("SELECT * FROM Policy WHERE Field_1 = '" + param_1 + "'");
if (Condition 2){
buildSearchQuery.Append("AND Field_2 = '" + param_2 + "' ");
}
if (Condition 2)
{
buildSearchQuery.Append("AND Field_3 = '" + param_3 + "' ");
}
...
你明白了。这些参数值总共有 20 个,我的任务是创建一个存储过程并将这些值作为参数传递。
我是否创建一个包含所有参数的存储过程并在那里执行逻辑,如果是,我不确定如何。像这样?
SELECT * FROM TABLE WHERE Field_1 = @param_1
IF(@param_2 <> NULL)
AND Field_2 = param_2
...
这些参数并不总是有值,因此它们不能成为查询的一部分。什么是让这项工作牢记性能的最佳方法?
【问题讨论】:
-
谢谢,我去看看。
标签: sql sql-server tsql