我有2个字段的学生表:
Name: nvarchar(256) Age: int
用户将使用WinForm应用程序输入名称和年龄进行搜索。
我的问题是如何编写这样的sql。
P / S:我使用SQL Server 2005。
请帮我。谢谢。
一种方法是使参数可为空并使用此模式:
Create Procedure MyTest ( @param1 int = NULL, @param2 varchar = NULL ) AS BEGIN SELECT Blah... FROM Table WHERE ((@param1 IS NULL) OR (somecolumn = @param1)) AND ((@param2 IS NULL) OR (someothercolumn = @param2)) END
[注意:如果有很多参数,它可能会有参数嗅探的副作用…]