如何从 Visual Studio 获取 SSMS 中的当前用户 ID?

Posted

技术标签:

【中文标题】如何从 Visual Studio 获取 SSMS 中的当前用户 ID?【英文标题】:How to get current user ID in SSMS from Visual Studio? 【发布时间】:2018-08-22 02:56:56 【问题描述】:

我在 Visual Studio 中有一个从 SSMS 加载表数据的程序。现在,无论谁登录,都很难加载特定的表。

在 SSMS 中,我有大学课程表。当用户登录时,我想在 Visual Studio 中运行代码以将他们使用的类(位于 SSMS 中)插入到 Visual Studio 中的表中。

我的问题的根源是:我基本上如何以及在哪个程序中编写“具有(当前 ID)的用户已登录。从 SSMS 获取他们的数据并将其放入表中。

你不一定要回答后面的部分,但我真的很难得到第一部分。获取登录的人员ID。是SCOPE_IDENTITY吗?是 @@IDENTITY 吗?尽力理解this microsoft doc on scope identity.

课程: https://i.imgur.com/IyXaYEZ.png

用户:https://i.imgur.com/2jbyngG.png

信息(在程序顶部加载):https://i.imgur.com/EFBvBgU.png

【问题讨论】:

登录的用户 id 不是 SCOPE_IDENTITY 也不是 @@IDENTITY。但是,它是您的应用程序,您应该知道如何识别登录的人。您的问题不清楚,您的用户不运行 Visual Studio,所以您能描述一下您的应用吗? 这是一个学位报告程序。 (这里是为了好玩,不要担心安全等)。当用户创建帐户时,他们将选择他们所参加的课程。将在 SSMS 中为该用户制作一个表格,其中包括他们所学的所有课程。我想将 SSMS 中的数据加载到 Visual Studio 中的 DataGridView(表)中。 【参考方案1】:

这与身份无关。标识描述了表上的自动递增列。

实现这一点的最简单方法是使用参数化存储过程。当您的用户登录时,您将执行一个过程,该过程将返回该用户 ID 的所有类信息。如果他们每个人都将成为 SQL Server 中的用户/登录名,则可以使用

SELECT DATATBASE_PRINICAL_ID() 

获取他们的 id,但很可能与您的表格数据中的内容不一致。

【讨论】:

感谢您的回复,我会调查的!快速提问。如果我想从 SSMS 中的表中获取用户数据,我应该尝试获取 SSMS 中的用户 ID 还是用户名等任意值? @ColtonHorvath 这取决于。在您的帖子中添加数据示例。 我已经添加了图片。基本上,将根据用户选择并表示他们已完成的课程创建一个新表。当他们登录时,他们的 类表将加载到程序的不同部分。我也会对 Info 表做同样的事情。这就是为什么我问我是否应该让用户创建用户名而不是我试图从 SSMS 获取他们的登录 ID。

以上是关于如何从 Visual Studio 获取 SSMS 中的当前用户 ID?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio2017 数据库数据比较

如何从 Visual Studio 中查看 .sdf 内容

如何从 Visual Studio 项目中获取抑制的代码分析警告列表?

Visual Studio Team System 2008数据库版是否支持用于创建表的IntelliSense?

如何从 Visual Studio 2022 社区版的单元测试中获取代码覆盖率?

如何使用C#(Visual Studio)从TFS(Team Foundation Server)获取/复制文件