场景:有10万+用户 ;假设每个用户对表A的获取的字段都不一样;比如:
1)张三需要表A中的字段a、b、c...
2)李四需要表A中的字段a、b、d...
3)王五需要表A中的字段a、c、d...
4)王六需要表A中的字段b、c、f...
...
请问如果用动态sql语句根据需求去获取是否是最佳的方式?效率如何?
select a,b,c from A
....
场景:有10万+用户 ;假设每个用户对表A的获取的字段都不一样;比如:
1)张三需要表A中的字段a、b、c...
2)李四需要表A中的字段a、b、d...
3)王五需要表A中的字段a、c、d...
4)王六需要表A中的字段b、c、f...
...
请问如果用动态sql语句根据需求去获取是否是最佳的方式?效率如何?
select a,b,c from A
....
建一张表,存储用户对A的需求字段(u_A)
uid A表字段名(ua)
u001 a,b,c,d
u002 a,c,d,f,g
........
建立存储过程
CREATE PROCEDURE [dbo].[TEST1]
@uid varchar(50)
as
begin
declare @s1 nvarchar(max)
set @s1='select '+(select ua from u_A where uid='''+@uid+''') from A'
exec(@s1 )
end