一个 SQL 服务器存储过程使用 table 值参数检索一个或多个项目
One SQL Server stored procedure to retrieve one item or multiple using table valued parameter
如何将条件添加到单个存储过程到 return 个项目或将 tvp 添加到 return 个项目?
所以我希望能够做到
Select *
From table
where id = @id
或
Select t.*
From table t
join tvp tvp on t.id = tvp.id
每次只传递一个项目的 tvp 这样我就可以避免第一次查询会不会很糟糕?我是不是太懒了,这应该只是两个不同的存储过程吗?
我以前用两个过程完成过此操作:第一个过程采用 TVP,另一个过程采用单个 ID,将其打包为 TVP 并调用第一个过程。我这样做是为了向后兼容,但它适用于这种情况。
你可以这样做:
Select t.*
From table t
where id = @id or
(@id is null and t.id in (select tvp.id from tvp));
如何将条件添加到单个存储过程到 return 个项目或将 tvp 添加到 return 个项目?
所以我希望能够做到
Select *
From table
where id = @id
或
Select t.*
From table t
join tvp tvp on t.id = tvp.id
每次只传递一个项目的 tvp 这样我就可以避免第一次查询会不会很糟糕?我是不是太懒了,这应该只是两个不同的存储过程吗?
我以前用两个过程完成过此操作:第一个过程采用 TVP,另一个过程采用单个 ID,将其打包为 TVP 并调用第一个过程。我这样做是为了向后兼容,但它适用于这种情况。
你可以这样做:
Select t.*
From table t
where id = @id or
(@id is null and t.id in (select tvp.id from tvp));