получение автоинкрементного значения после вставки записи, использующей SQL Server

Я ожидал бы Строка. Формат , чтобы быть медленнее - это должно проанализировать строку, и тогда связывают его.

Несколько примечаний:

  • Формат является способом пойти для видимых пользователем строк в профессиональных приложениях; это избегает ошибок локализации
  • , Если Вы знаете длину результирующей строки заранее, используйте StringBuilder (Int32) конструктор для предопределения способности
5
задан Jonas Lincoln 8 December 2009 в 07:37
поделиться

3 ответа

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 последний идентификатор в текущем сеансе
  • scope_identity () последний идентификатор в текущем сеансе, текущая область видимости
4
ответ дан 14 December 2019 в 04:39
поделиться
INSERT
    INTO [News]
    (
        LanguageID,
        Title,
        Short,
        [Full],
        Published,
        AllowComments,
        CreatedOn
    )
    VALUES
    (
        @LanguageID,
        @Title,
        @Short,
        @Full,
        @Published,
        @AllowComments,
        @CreatedOn
    )

    set @NewsID=@@identity
0
ответ дан 14 December 2019 в 04:39
поделиться

Взгляните на SCOPE_IDENTITY (Transact-SQL)

4
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: