SCOPE_IDENTITY () вернуть 1 - PullRequest
       47

SCOPE_IDENTITY () вернуть 1

0 голосов
/ 15 сентября 2018

Я использую этот код в SQL Server 2012:

INSERT INTO [dbo].[test] ([t]) 
VALUES ('tyy');

SELECT [Id] 
FROM [dbo].[test] 
WHERE ([Id] = SCOPE_IDENTITY())

Возвращает последний вставленный идентификатор, и он работал хорошо.

Но один и тот же код в vb.net 2017 и .net Framework 4.7.2 не работает - для каждой вставки он возвращает 1.

Это код:

Dim id = TestTableAdapter.InsertQuery("nvnh")

Таблица:

CREATE TABLE [dbo].[test] 
(
    [Id] INT IDENTITY (1, 1) NOT NULL,
    [t]  NVARCHAR (50) NULL,
    CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ([Id] ASC)
);

1 Ответ

0 голосов
/ 15 сентября 2018

спасибо за все. я наконец нашел решение.

я использую уже любое из вышеперечисленных решений,

но запрос eqcutemode равен NonQuery, поэтому он подсчитывает количество вставленных строк я изменил его на Scalar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...