当前位置: 首页 > 知识库问答 >
问题:

[Azure/mssql]如何获取插入查询记录集

吕晟睿
2023-03-14

我正在使用mssql。插入记录后,我想获取数据的id。但我不知道该怎么做。我的代码如下。请给我答案。

var mssql = require('mssql');
mssql.connect(config.mssql, function(err) {
var request = new mssql.Request(); 
request.query('insert -----'),function(err, data) {
   console.log(data);
}

Insert工作正常,但控制台日志[未定义]。。。。

这是表的ddl

在GO上设置ANSI\U NULL,在GO上设置QUOTED\U IDENTIFIER。[特征](
[id]nvarchar NOT NULL CONSTRAINT[DF\u Feature\u id]DEFAULT(CONVERT(nvarchar,newid(),(0)),
[createdAt]datetimeoffset NOT NULL CONSTRAINT[DF\u Feature\u createdAt]DEFAULT(CONVERT(datetimeoffset,sysutcdatetime(),(0)),
[updatedAt]datetimeoffset NULL,
[version][timestamp]NOT NULL,
[deleted][bit]NULL DEFAULT((0)),
[title]nvarchar NULL,
[文本]nvarchar NULL,
[period\u from]datetimeoffset NULL,
[period\u to]datetimeoffset NULL,
[priority][float]NULL,
主键非聚集(
[id]ASC
)带(STATISTICS\u norecocomputer=OFF,IGNORE\u DUP\u KEY=OFF)

开始

共有1个答案

齐望
2023-03-14

使用OUTPUT子句。这是语法的示例...

IF OBJECT_ID('RandomTest.dbo.FeatureID_Capture', 'U') IS NOT NULL
DROP TABLE dbo.FeatureID_Capture;
GO      
CREATE TABLE dbo.FeatureID_Capture (
    Id NVARCHAR(50)
    );
GO

IF OBJECT_ID('RandomTest.dbo.Feature', 'U') IS NOT NULL
DROP TABLE dbo.Feature;
GO  
CREATE TABLE dbo.Feature (  
    id NVARCHAR(40) NOT NULL
        CONSTRAINT DF_Feature_id
        DEFAULT (CONVERT(NVARCHAR(40), NEWID(), (0))),
    createdAt DATETIMEOFFSET NOT NULL
        CONSTRAINT DF_Feature_createdAt
        DEFAULT (CONVERT(DATETIMEOFFSET, SYSUTCDATETIME(), (0))),
    updatedAt DATETIMEOFFSET NULL,
    version TIMESTAMP NOT NULL,
    deleted BIT NULL
        DEFAULT ((0)),
    title NVARCHAR (10) NULL,
    text NVARCHAR (10) NULL,
    period_from DATETIMEOFFSET NULL,
    period_to DATETIMEOFFSET NULL,
    priority FLOAT NULL,
    PRIMARY KEY NONCLUSTERED (id ASC)
    WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF)
    );
GO 
--=======================================================

INSERT dbo.Feature (title, text) 
    OUTPUT Inserted.id INTO dbo.FeatureID_Capture(Id)
VALUES ('t 1', 'txt 1'), ('t 2', 'txt 22'), ('t 3', 'txt 333');

-------------------------------------

SELECT *FROM dbo.FeatureID_Capture fic;

输出。。。

Id
--------------------------------------------------
4E9EB3CD-AD44-4837-9B87-BBB85308FFBF
B93983B6-C15A-4534-8AC4-EB9404964C09
FAFA678A-8416-490C-A871-3963EAB67B9F
 类似资料:
  • 问题内容: 我有一个插入查询(活动记录样式),用于将表单字段插入到MySQL表中。我想获取插入操作的最后一个自动递增的ID作为查询的返回值,但是我有一些问题。 控制器内部: 而内部模型: 作为模型中add_post的返回,我一无所获 问题答案: 尝试这个 如果有多次插入,您可以使用

  • 问题内容: 设想 我需要每天通过电子表格(唯一可用的选项)更新SQL 2008数据库。该格式非常基本,但是可能有数百万条记录。Column1和Column3将具有许多预定义的重复值,这些值已经提取到单独的表中。 电子表格样本 数据库设置 我的数据库设置了三个单独的表: 问题 如何编写SQL来插入与查找表中的信息匹配的记录?我该怎么办: 对此: 问题答案: 您可以尝试这样的事情: 没有任何容错功能,

  • 问题内容: 好的,可以说我正在对一个表进行mysql操作,并且该表的列设置为和。 如何获得查询以在同一查询中输出新生成的主键的值? 目前,我正在运行第二个查询来检索ID,但是考虑到这可能会产生错误的结果,这似乎不是一种好习惯。 如果这不可能,那么确保我检索正确ID的最佳实践是什么? 问题答案: 您需要使用以下功能:http : //dev.mysql.com/doc/refman/5.0/zh-

  • 问题内容: 问题标题怎么说。使用诸如之类的查询时,我是否需要提供表名或任何其他信息以指定我正在谈论的表/数据库? 问题答案: 返回当前会话中生成的最新标识。在大多数情况下,您可能需要使用它,它返回当前作用域中生成的最新标识。 例如,如果您向 table1中 插入一行,但是该插入触发了将行插入到 table2中 的触发器,则它将从 table2 返回标识,而将从 table1 返回标识。

  • 假设我在我的一个表中执行MySQL操作,该表具有列,该列被设置为和。 如何获取查询以输出同一查询中新生成的主键的值? 目前,我正在运行第二个查询来检索id,但这似乎不是一个好的做法,因为这可能会产生错误的结果。 如果这是不可能的,那么什么是最佳实践,以确保我检索正确的ID?

  • Val1 Val2 Val3 Val4 Val5 Val6 Val7 Val8 Val9 Val10 Val11 Val12 Col1 Col2 Col3 Col4 Col5 Col6 Val1 Val2 Val3 Val4 Col5 Val5 Val1 Val2 Val3 Val4 Col6 Val6 Val1 Val2 Val3 Val4 Col7 Val7 Val1 Val2 Val3 Va