SCOPE_IDENTITY() return 1
SCOPE_IDENTITY() return 1
我在 SQL Server 2012 中使用此代码:
INSERT INTO [dbo].[test] ([t])
VALUES ('tyy');
SELECT [Id]
FROM [dbo].[test]
WHERE ([Id] = SCOPE_IDENTITY())
它 returns 最后插入的 ID 并且效果很好。
但是 vb.net 2017 和 .net Framework 4.7.2 中的相同代码不起作用 - 对于每个插入,它 returns 1.
这是代码:
Dim id = TestTableAdapter.InsertQuery("nvnh")
Table:
CREATE TABLE [dbo].[test]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[t] NVARCHAR (50) NULL,
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ([Id] ASC)
);
谢谢大家。
我终于找到了解决方案。
我已经使用了以上任何解决方案,
但是查询 eqcutemode
是 NonQuery
,所以它给了我插入行的计数
我将其更改为 Scalar
我在 SQL Server 2012 中使用此代码:
INSERT INTO [dbo].[test] ([t])
VALUES ('tyy');
SELECT [Id]
FROM [dbo].[test]
WHERE ([Id] = SCOPE_IDENTITY())
它 returns 最后插入的 ID 并且效果很好。
但是 vb.net 2017 和 .net Framework 4.7.2 中的相同代码不起作用 - 对于每个插入,它 returns 1.
这是代码:
Dim id = TestTableAdapter.InsertQuery("nvnh")
Table:
CREATE TABLE [dbo].[test]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[t] NVARCHAR (50) NULL,
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ([Id] ASC)
);
谢谢大家。 我终于找到了解决方案。
我已经使用了以上任何解决方案,
但是查询 eqcutemode
是 NonQuery
,所以它给了我插入行的计数
我将其更改为 Scalar