我不能为我的生活出此存储过程是如何工作的或它是什么做的正是,我知道它的作品原样,但我想限制哪些需要修改一些这方面的数据库调用存储过程。深入地理解存储过程
CREATE PROCEDURE scriptassist.getQueue
@Status smallint = -1,
@GroupID uniqueidentifier = null,
@MACAddress varchar(200) = ''
AS
SET NOCOUNT ON
Print @GroupID
SELECT *
FROM [Queue]
WHERE
case @Status
When -1 Then
Case When ISNULL(Status,0) <> 1 Then 1 Else 0 End
Else
Case When ISNULL(Status,0) = @Status Then 1 Else 0 End
End =1
And
case When @GroupID IS NULL Then 1
Else
Case When GroupID = @GroupID Then 1 Else 0 End
End =1
And
case @MACAddress
When ''
Then 1
Else
Case When MACAddress = @MACAddress Then 1 Else 0 End
End =1
Order By DateEntered DESC
我知道,它以某种方式动态地定义Where子句,但我不确定做什么。此外,如果有人知道一个工具,可以让我看到实际发生的事情,谢谢!
好吧,现在我明白这里发生了什么,谢谢 – msarchet 2010-06-03 16:23:25