gpt4 book ai didi

sql-server - Excel 与 SQL Server 通信以识别用户。

转载 作者:行者123 更新时间:2023-12-04 22:08:30 24 4
gpt4 key购买 nike

Excel 查询 SQL Server。尝试使用当前用户名进行查询。我有一个在 SQL Server 中查询 View 的 Excel 文件。 View 设置为根据用户查询 View 返回结果。

我在网络服务器上设置了一个文件供其他人访问,希望当他们打开文件时,它只会显示与他们相关的信息。

但这些信息仍然只针对我自己。我希望它显示用户使用文件的信息,就好像他们直接查询 View 一样。

这是 View 的示例查询:

Select * from dbo.WorkEstimate where Estimator = SUSER_NAME()

但是 Excel 表只返回与我有关的信息。我认为这可能与 connectstring 有关总是指定我的工作站名称。有没有办法改变它以反射(reflect)正在使用该文件的个人(或他们的工作站)?

最佳答案

SUSER_NAME() SQL 语句中的 (transact-sql) 是指当前执行的 SQL 语句上下文中的当前用户。在您的情况下,它是您在连接字符串中指定的用户 ID。 sql server 使用您的连接字符串中指定的用户来运行该语句,因此您的 SUSER_NAME()反射(reflect)该用户。

您需要使用以下 Excel 函数指定 Excel 在(Windows 环境)下运行的用户:

  • Application.Username是在 Excel 工具>选项中设置的用户名(在用户名框下)
  • Environ("Username")是您为 Windows 注册的名称,请参阅控制面板 > 系统

  • 因此,您的 SQL 语句必须类似于:
    vsSQL = "SELECT * FROM dbo.WorkEstimate WHERE (Estimator = '" & Environ("Username") & "');"

    希望这可以帮助。

    关于sql-server - Excel 与 SQL Server 通信以识别用户。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036830/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com