@Username when 运行 在服务器上

@Username when run on server

所以我们最近决定将数据库中的一些私有视图更改为普通视图。但是,select公式中有@Username,当不在私有视图中计算时,它显然显示服务器名称。

有什么方法或函数可以获取实际用户的用户名而不是服务器的用户名吗?

您好, 丹尼尔

不,那不可能。该视图是在服务器上计算的,@UserName 在那里不起作用。 documentation of @UserName 指出:

You should not use @UserName in a public view, doing so produces unpredictable results.

作为解决方法,您可以添加第一个分类列,其中包含由文档字段计算或包含的用户名,并将此视图嵌入到表单或页面中。在那里您可以使用@UserName 仅显示当前用户的类别 (have a look at this)。

没有。如果您希望视图显示特定于用户的数据,这就是私有视图的用途。

即使您将共享视图设置为每次都丢弃其索引并重建,共享视图仍将由服务器上的 运行 索引器构建,运行 在服务器的 运行 下身份。无论如何,动态地为每个用户重新计算视图是非常低效的。

一种替代方法是使用按名称分类的视图,并将您的应用程序设计为使用带有“显示单一类别”选项的嵌入式视图enabled.If应用程序的规模不是太大,这可以很好地工作 -但是对于名称在视图排序顺序中靠前的用户来说,它会比名称靠后的用户更快,因此在评估性能时请记住这一点。