SQL仅选择在单独的元数据表中作为行存在的列

时间:2009-09-20 00:58:38

标签: sql-server

在我的应用中,任何用户都可以配置要显示,重新排序和调整列大小的列。为了保存每个用户设置,我有几个表格。

其中一个名为UserColumns,如下所示:

Id | UserId | ColumnName | DefaultWidth | Width | SortOrder

有没有办法,没有动态生成选择字符串并执行它,我可以从表中选择列,但只能选择UserColumns表中为该特定用户存在的列?< / p>

所以像ApplicationErrors这样的表:

Id | ExceptionMessage | StackTrace | LogDate

id = 1的用户已选择这些列:     StackTrace,LogDate。

所以我想得到一个只有StackTrace和LogDate的结果集,按UserColumns表中SortOrder列的值排序。

这可能吗?

1 个答案:

答案 0 :(得分:3)

为了使用未知列进行选择,您需要动态生成查询并执行它。

如果您只有少数用户,那么您可以创建一个视图,并使用创建一个将视图链接到用户的表,并且您可以根据视图进行选择,但是,您的应用程序将希望这样做,因为它可以使用变量表动态创建查询。