我读了一篇关于在存储过程中构建动态SQL的文章,它确实很好。那篇文章说:
当我们需要根据不同的搜索参数检索一组记录时,需要动态SQL
所以,我认为我们可以在每个需要检索不同搜索记录的项目中使用它,并且没有使用动态SQL的约束。这是真的吗?
答案 0 :(得分:1)
在无法使用参数的情况下,您应该将动态查询作为最后的手段。 这样您就可以保护自己免受SQL注入。
您总是可以使一些参数可选,并使用WHERE子句中的参数:
...
WHERE (@Param1 IS NULL OR Field1=@Param1) AND ... etc
...
这样,如果将@Param1设置为NULL,则表示不使用它。
另一种选择可能是使用全文搜索,您可以在此处找到有关此内容的更多详细信息: http://technet.microsoft.com/en-us/library/ms142571.aspx