我必须支持对具有超过50列的表进行过滤,并且所有50列都可以过滤。
我有SQL格式的过滤条件,例如-
FirstName = 'Joe' OR SomePolicyId = '9677876' OR Gender = 2 OR IsAlive = 1 OR DOB > '1988/05/16' OR LastName like '%Doe'
我很困惑应该使用哪种方法。
方法1- 使用50个参数以及等于/不等于/大于和其他条件创建过程
方法2- 执行动态SQL 像
set @vquery = 'select [DbId],FirstName,LastName,UserId from [User] where 1=1 '+@CustomFilter
exec sys.sp_executesql @vsql
我知道每种情况都有其优点和缺点,但是有什么更有益的呢?