如何向单个存储过程中添加条件,以返回一个项或加入一个tvp返回多个项?
所以我想要
Select *
From table
where id = @id或
Select t.*
From table t
join tvp tvp on t.id = tvp.id如果每次只传递一个tvp,这样我就可以避免第一个查询,这会很糟糕吗?我是不是太懒了,难道这只是两个不同的存储过程吗?
发布于 2018-03-19 20:23:04
我以前做过两个过程:第一个过程接受TVP,另一个过程接受一个ID,将它打包为TVP并调用第一个过程。我这样做是为了向后兼容,但在这种情况下是适用的。
发布于 2018-03-20 03:14:55
你可以:
Select t.*
From table t
where id = @id or
(@id is null and t.id in (select tvp.id from tvp));https://stackoverflow.com/questions/49371720
复制相似问题