如何从 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 Studio 项目中获取抑制的代码分析警告列表?
Visual Studio Team System 2008数据库版是否支持用于创建表的IntelliSense?