情景:
spFetch
),我想返回一个列表
表的结果spFetch
)定义了许多
调用者可能传入或不传入的参数。如果未传递参数值
在调用者处,他们默认为null。spFetch
)中的语句返回过滤结果。这里的想法是,在后端我可以限制可能的查询参数,同时仍然允许广泛的参数。
如何编写spFetch
以满足上述方案的所有要求?
对于这个场景,必须有一个最好的练习,认为其他开发者不会这样做已经是疯了吗?
答案 0 :(得分:1)
CREATE PROCEDURE [dbo].[p_Search] ( @Name sysname = NULL, @Objectid INT = NULL, @schemaId INT = NULL )
AS
BEGIN
SELECT
[name]
,[object_id]
,[principal_id]
,[schema_id]
,[parent_object_id]
,[type]
,[type_desc]
,[create_date]
,[modify_date]
,[is_ms_shipped]
,[is_published]
,[is_schema_published]
FROM
[sys].[objects]
WHERE 1 = 1
AND [name] = ISNULL(@Name, [name])
AND ISNULL(@Objectid, [object_id]) = [object_id]
AND ISNULL(@schemaId, [schema_id]) = [schema_id];
END;
EXEC p_search @Name = 'sysallocunits'