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

如何从SQLServer SELECT语句返回新的IDENTITY列值?

秦昊穹
2023-03-14
问题内容

我要插入具有自动递增键字段的SQLServer表。(我相信这在SQLServer中称为IDENTITY列。)

在Oracle中,我可以使用RETURNING关键字为INSERT语句提供一个类似于SELECT查询的结果集,该结果集将返回生成的值:

INSERT INTO table
(foreign_key1, value)
VALUES
(9, 'text')
RETURNING key_field INTO :var;

如何在SQLServer中完成此操作?

奖励 :好的,到目前为止,很好的答案,但是,如果可能的话,如何将其放入单个语句中?:)


问题答案:

通常,它不能在单个语句中完成。

但是SELECT SCOPE_IDENTITY()可以(并且应该)直接放在INSERT语句之后,因此所有操作都在同一数据库调用中完成。

例子:

mydb.ExecuteSql("INSERT INTO table(foreign_key1, value) VALUES(9, 'text'); SELECT SCOPE_IDENTITY();");

您可以使用OUTPUT,但是您应该注意一些限制:

http://msdn.microsoft.com/en-
us/library/ms177564.aspx



 类似资料:
  • 问题内容: from pandas import DataFrame import pyodbc 可以填充我的pandas DataFrame。但是我怎么得到 直接从 光标 ?这些信息是否完全存储在 游标 中? 问题答案: 您可以从游标描述中获取列:

  • 我正在使用一个可以进行温度转换的程序,并且已经有了代码,但现在我必须制作一个测试代码的程序。对于我需要帮助的部分,我从这样的构造函数开始: 然后我制定了一种方法,从摄氏度或华氏度中获取温度,如下所示: 最后,我在测试编码中写道: 我的问题是,当我运行这个程序时,温度没有显示出来,当我输入此代码的输出时,它返回原始温度(52华氏度)。我如何让它显示我需要的温度(11.1摄氏度)?另外,请注意,我刚刚

  • 我不得不使用全局变量found来指示在哪里找到了一个和。返回语句始终未定义。 此外,如果在下面的if语句中使用return语句,代码将无法正常工作。 这不是问题的最佳解决方案,但这是我得到的工作版本。 返回语句之间的****,删除时代码工作,否则我要么得到false或未定义。我不明白这部分!为什么删除返回就能解决问题,我认为每个递归调用都必须用返回语句进行。 问题可能是由于多次呼叫造成的吗?我是不

  • 是否可以编写如下JPQL查询: <代码>选择计数(*) 这将根据实体填充条件是否存在返回真/假布尔值? 我想这样使用查询: 我示例中的查询在语法上不正确(解析错误),但是是否有任何正确的方法可以像在JPQL中那样进行检查,从而返回布尔值,或者只有在Java代码中才有可能?

  • 问题内容: 您好,我是python的新手,想知道您是否可以帮我一些忙。我一直在玩这段代码,似乎无法使其正常工作。 现在,isPrime方法的输出如下: 我确定该函数应返回true,然后应打印“是”。我想念什么吗? 问题答案: 您将放弃递归调用的返回值: 您也想传播递归调用的值,包括一条语句: 现在,您的代码将输出:

  • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。