使用SQL Server插入记录后获取自动增量值

发布于 2024-08-14 11:48:44 字数 104 浏览 4 评论 0原文

我正在开发一个使用 VB.NET 连接到 SQL Server 数据库的项目

,在这个项目中,我需要在插入一条记录后获取名为“ID”的列的值 立即数据库。

谢谢。

I'm developing a project using VB.NET connected to SQL Server database

and in this project i need to get the value of column called "ID" after inserting a record to
the database immediately.

thanx.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

青朷 2024-08-21 11:48:44
CREATE TABLE dbo.SomeTable (
     ID int IDENTITY
    ,[NAME] varchar(50)
    );
go

INSERT INTO dbo.SomeTable ([Name])
SELECT 'Joe' UNION
SELECT 'Jim' UNION
SELECT 'JIll'
;

SELECT  ident_current('dbo.SomeTable') AS [LastID_1]
        ,@@IDENTITY AS [LastID_2]
        ,scope_identity() AS [LastID_3]
;   

用途:

  • ident_current ('TableName') 用于特定表,不受范围和会话限制
  • @@IDENTITY 当前会话中的最后一个 ID
  • scope_identity() 当前会话中的最后一个 ID,当前范围
CREATE TABLE dbo.SomeTable (
     ID int IDENTITY
    ,[NAME] varchar(50)
    );
go

INSERT INTO dbo.SomeTable ([Name])
SELECT 'Joe' UNION
SELECT 'Jim' UNION
SELECT 'JIll'
;

SELECT  ident_current('dbo.SomeTable') AS [LastID_1]
        ,@@IDENTITY AS [LastID_2]
        ,scope_identity() AS [LastID_3]
;   

USES:

  • ident_current ('TableName') for a specific table, not limited by scope and session
  • @@IDENTITY last ID in current session
  • scope_identity() last ID in current session, current scope
墟烟 2024-08-21 11:48:44
INSERT
    INTO [News]
    (
        LanguageID,
        Title,
        Short,
        [Full],
        Published,
        AllowComments,
        CreatedOn
    )
    VALUES
    (
        @LanguageID,
        @Title,
        @Short,
        @Full,
        @Published,
        @AllowComments,
        @CreatedOn
    )

    set @NewsID=@@identity
INSERT
    INTO [News]
    (
        LanguageID,
        Title,
        Short,
        [Full],
        Published,
        AllowComments,
        CreatedOn
    )
    VALUES
    (
        @LanguageID,
        @Title,
        @Short,
        @Full,
        @Published,
        @AllowComments,
        @CreatedOn
    )

    set @NewsID=@@identity
静若繁花 2024-08-21 11:48:44

SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 是类似的函数,因为它们返回插入到标识列中的值。

SCOPE_IDENTITY, IDENT_CURRENT, and @@IDENTITY are similar functions because they return values that are inserted into identity columns.

-黛色若梦 2024-08-21 11:48:44

EMPID ( AUTOINCREAMENT)
NAME VARCHAR(50)

INSERT INTO TABLE ( NAME) VALUES ('RAMKUMAR')
SELECT @@IDENTITY

使用@@identity
返回自增值

TABLE

EMPID ( AUTOINCREAMENT)
NAME VARCHAR(50)

INSERT INTO TABLE ( NAME) VALUES ('RAMKUMAR')
SELECT @@IDENTITY

use @@identity
returns the autoincreament value

万水千山粽是情ミ 2024-08-21 11:48:44

您可以创建临时表变量并创建一个名为 StuId 的列。

--Student table creation
CREATE TABLE [dbo].[StuTable](
    [StuId] [int] IDENTITY(1,1) NOT NULL,
    [StuName] [nvarchar](50) NOT NULL,
    [DOB] [date] NULL
)

DECLARE @TempTable TABLE(StuId INT)

INSERT INTO [dbo].[StuTable]([StuName]
                            ,[DOB])
OUTPUT inserted.StuId INTO @TempTable
VALUES ('Peter', '1979-01-01')

SELECT StuId FROM @TempTable --Get the auto increment Id

You can create temp table variable and create a column called StuId.

--Student table creation
CREATE TABLE [dbo].[StuTable](
    [StuId] [int] IDENTITY(1,1) NOT NULL,
    [StuName] [nvarchar](50) NOT NULL,
    [DOB] [date] NULL
)

DECLARE @TempTable TABLE(StuId INT)

INSERT INTO [dbo].[StuTable]([StuName]
                            ,[DOB])
OUTPUT inserted.StuId INTO @TempTable
VALUES ('Peter', '1979-01-01')

SELECT StuId FROM @TempTable --Get the auto increment Id
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文