使用INSERT SELECT时如何使用@@ IDENTITY?
DECLARE @ENTITYID AS BIGINT
INSERT INTO Quiz_QuizQuestion
SELECT @ENTITYID,
@DIFICULTLEVELCODE,
ENTITYID,
@QuizEntityId,
Title,
[Description],
[Description],
Duration
FROM Education_Question
WHERE EntityID = 1 --THIS SELECT RETURN JUST 1 RECORD
SET @ENTITYID = @@IDENTITY
SELECT @ENTITYID // NULL
Run Code Online (Sandbox Code Playgroud)
您不需要将 @@IDENTITY 插入到您的场景中的表中 - 您必须使用IDENTITY字段创建表,如下所示:
CREATE TABLE Quiz_QuizQuestion
(
EntityId int IDENTITY NOT NULL,
...
)
GO
DECLARE @ENTITYID AS BIGINT
INSERT INTO Quiz_QuizQuestion
SELECT
@DIFICULTLEVELCODE,
ENTITYID,
@QuizEntityId,
Title,
[Description],
[Description],
Duration
FROM Education_Question
WHERE EntityID = 1 --THIS SELECT RETURN JUST 1 RECORD
SET @ENTITYID = SCOPE_IDENTITY()
SELECT @ENTITYID // NULL
Run Code Online (Sandbox Code Playgroud)