下面是一個比較巧妙的方法去實現所謂的“動態查詢”
ALTER PROCEDURE [dbo].[Test]
@flag int,
@inorout int
AS
BEGIN
SELECT * FROM Demo
where 1 = 1
and ((@flag IS NULL) or (flag=@flag) or @flag = '')
and ((@id IS NULL) or (id=@id) or @id= '')
END
@flag是傳入的參數
so...如果要啟用id作為查詢條件,就傳入一個非null的值,否則就是不啟用id作為查詢條件,這就是傳說中的動態查詢