2
Ive가 계속 도움을 받았지만 아무 도움도받지 못했습니다. 마지막으로 ID SCOPE_IDENTITY()를 삽입하려는 저장 프로 시저가 있습니다. B 그러나 당신이 당신의 데이터베이스 테이블에 ID 열이있는 경우 테이블에 새 행을 추가 할 때, NULL 값을SQL 서버의 테이블에 삽입 할 값으로 Identity_Scope를 사용하는 방법
CREATE PROCEDURE dbo.Createletter
@A INT,
@B NVARCHAR(50),
@C NVARCHAR(50),
AS
BEGIN;
SET NOCOUNT ON;
BEGIN;
INSERT INTO dbo.Employees (A, B, C)
VALUES (@A, SCOPE_IDENTITY(),@C);
END;
END;
GO
는 "지난 정체성"이란 무엇 추측? 테이블에서 가장 높은 ID를 의미합니까? 어떤 경우이든 SCOPE_IDENTITY() (여기에있는대로 identity_scope()가 아님)는 명령문의 가장 최근 삽입에서 마지막 ID를 반환합니다. 이 앞에 삽입이 없으므로 범위에 ID가 없습니다. FacultyEmployeeID에 대한 삽입을 실행하는 다른 프로 시저가 있습니까? * this * insert 문에서 그 값을 반환해야 할 필요가있는 것 같습니다. 그리고 만약 다른 스코프라면 SCOPE_IDENTITY()를 사용할 수 없을 것입니다. 다른 스코프가 될 것입니다 ... 조금 더 명확하게해야 할 필요가 있다고 생각합니다. –
필자는 내 프로 시저의 insert 문에서 Scope_Identity()를 시도했지만 여전히 NULL이됩니다. 또한 삽입 이전에 절차가 없습니다 – Derek
그러면 정확한 문제입니다. 앞의 주석에서 말한 것처럼 SCOPE_IDENTITY()는 스코프에서 가장 최근의 ID 값을 반환합니다. 이 범위에는 다른 삽입이 없기 때문에 반환 할 Identity 값이 없습니다. 따라서'NULL'. –