当前位置: 首页 > 面试题库 >

SQL Server在插入语句后返回标识列的值

胥承
2023-03-14
问题内容

在SQL Server中,是否可以使用存储过程在插入一些值的表中返回标识列的值?例如,如果我们在表中插入数据,则使用存储过程:

表TBL

  • 用户ID整数,身份,自动递增
  • 名称varchar
  • 用户名varchar
  • 密码varchar

因此,如果我运行存储过程插入一些值,例如:

 Insert into TBL (Name, UserName, Password)
 Values ('example', 'example', '$2a$12$00WFrz3dOfLaIgpTYRJ9CeuB6VicjLGhLset8WtFrzvtpRekcP1lq')

我该如何返回UserID此插入将发生的值。我需要其他一些操作的UserID值,有人可以解决吗?


问题答案:
Insert into TBL (Name, UserName, Password) Output Inserted.IdentityColumnName
 Values ('example', 'example', 'example')


 类似资料:
  • 问题内容: 插入后如何在Oracle 12c中返回标识列(id)的值?似乎大多数方法都使用序列来获取插入项的ID。 问题答案: 只需使用 RETURNING 子句。 例如 - 测试用例 -

  • 问题内容: 在SQL Server 2000或更高版本中,当使用如下语句时,是否有处理自动生成的主键(标识)列的方法? 我的目标是根本不使用列名。 问题答案: 默认情况下,如果你有一个标识列,你就 不会 需要在值部分指定它。如果您的表是: 然后,您可以执行以下操作: 这将为您自动生成ID,而您完全不必考虑它。如果您可以为ID列分配一个值。

  • 问题内容: 我要插入具有自动递增键字段的SQLServer表。(我相信这在SQLServer中称为IDENTITY列。) 在Oracle中,我可以使用RETURNING关键字为INSERT语句提供一个类似于SELECT查询的结果集,该结果集将返回生成的值: 如何在SQLServer中完成此操作? 奖励 :好的,到目前为止,很好的答案,但是,如果可能的话,如何将其放入单个语句中?:) 问题答案: 通

  • 问题内容: 如您所知,ECMAscript会尝试变得聪明,如果您未明确编写 分号 ,则会自动插入 分号 。简单的例子 仍将按预期工作。但是,如果您依靠这一点,则有一些警告。如果我们像这样重写该函数 ..那个函数现在将返回,因为解释器将在语句之后插入分号(这就是为什么始终将大括号放在与语句相同的行上的原因)。 但是,了解了所有这些之后,我现在想知道在所有浏览器和版本中,如下所示的语句的 安全性 如何

  • 问题内容: 我正在尝试在INSERT语句之后找回键值。示例:我有一个带有属性名称和ID的表。id是一个生成的值。 现在,我想在同一步骤中重新获得ID。这是怎么做的? 我们正在使用Microsoft SQL Server 2008。 问题答案: 无需单独的SELECT … 这也适用于非IDENTITY列(例如GUID)

  • 问题内容: 以Oracle论坛中显示的示例:使用plsql生成excel(xls),我想从查询的数据集中生成一个excel文件。 此处提供的示例有效。但是,我遇到了一些挑战: 我的SQL查询很长,超过了4000个字符的限制。 我想将参数传递给我的查询。 我想以一种非常简单的方式做到这一点,并且不使用Dynamic SQL(如果可能)。 我提出的内容如下: 包装定义: 现在,我的匿名阻止最好是如下所