예:
INSERT INTO table (name) VALUES('bob');
Now I want to get back in the id 동일한 단계이다. 이게 어떻게 완료했습니까?
INSERT INTO files (title) VALUES ('whatever');
SELECT * FROM files WHERE id = SCOPE_IDENTITY();
가장 안전한 충돌 문제를 테이블에 대한 조항이 없어 차라리 출력입니다 트리거합니다 함께 있는 것으로 알려져 있다. # 39 표, t 는 이 같은 상당히 신뢰할 수 없는 경우에도 추가 one down the line) - 모든 사람이 트리거합니다 doesn& 현재 보유하고 있는 응용 프로그램을 끊어집니다. 일종의 시한폭탄 있다.
Msdn 문서 참조 대해 좀 더 자세히 설명:
엔티티입니다 레임워크 향상합니다 비슷한 상황이 gbn& # 39 의 대답:
DECLARE @generated_keys table([Id] uniqueidentifier)
INSERT INTO Customers(FirstName)
OUTPUT inserted.CustomerID INTO @generated_keys
VALUES('bob');
SELECT t.[CustomerID]
FROM @generated_keys AS g
JOIN dbo.Customers AS t
ON g.Id = t.CustomerID
WHERE @@ROWCOUNT > 0
출력 결과가 저장됩니까 선택한 후 임시 테이블 가변으로 백됩니다 클라이언트입니다. 알고 있어야 잡았다.
>. 두 개 이상의 변수를 저장할 수 있는 삽입물의 생성할 수 있는 둘 이상의 행, 행, 그래서 귀의하지않는다고 수 있도록 하나 이상의 'ID'
난 아무 생각이 왜 EF 다시그것들을 내부 bigadmin 의 임시 테이블 백됩니다 실제 표 (어떤 상황에서 두 맞지 않는 것).
하지만 어떤 that& # 39 의 EF 는.
SQL Server 2008년 이상 뿐입니다. # 39 의 경우 2005년 it& 어졌다면 you& # 39, re 아웃해야 운빨이야.
'Scope_identity ID 를 사용할 수 있습니다 ()' 를 선택하면 됩니다 방금 삽입됨 행일 다음 원하는 열 변수 id = 어떤 것을 테이블로 scope_identity () '에서' 아이디 있잖아
Msdn 에 대한 정보 http://msdn.microsoft.com/en-us/library/ms190315.aspx 알
대부분의 솔루션을 사용하고 SCOPE_IDENTITY () '' (the best and 합니다.
당신뿐이요 내려받습니다 유효범위 저장한 후 할 수 있기 때문에 두 변수에 모든 아이디 삽입하십시오 삽입하십시오 호출하십시오 같은 내시경이요
그러나 그들은 그들이 행하는 '수' 와 '' ident_current @@identity 안전하지 내시경이요 국가의 대형 애플리케이션 문제가 있을 수 있습니다.
declare @duplicataId int
select @duplicataId = (SELECT SCOPE_IDENTITY())
자세한 내용은 여기 [Microsoft docs] [1]
[1]: 2017년 보기 = sql server https://docs.microsoft.com/en-us/sql/t-sql/functions/scope-identity-transact-sql?
이후 여러 가지 방법으로 종료하십시오 삽입하십시오
>. 데이터 삽입할 때 표로 출력물에는 절 위해 사용할 수 있습니다. >. 데이터 복제본만 삽입됨 복귀하십시오 받은 한 표. 이 >. 기본 양식은 출력입니다 데 2 항). 출력 및 출력 대상. List. >. 출력 형식을 스케쳐내 반환되기를 데이터를 호출하십시오 프로그램. >. 결과를 이용하여 데이터를 양식에 스케쳐내 반환되기를 테이블 또는 >. 테이블 변수다.
DECLARE @MyTableVar TABLE (id INT,NAME NVARCHAR(50));
INSERT INTO tableName
(
NAME,....
)OUTPUT INSERTED.id,INSERTED.Name INTO @MyTableVar
VALUES
(
'test',...
)
SELECT IDENT_CURRENT('tableName') AS [IDENT_CURRENT]
SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY];
@@IDENTITY : 마지막 동일한 세션 id 를 돌려준다.
SELECT @@IDENTITY AS [@@IDENTITY];
이것은 내가 어떻게 사용할 때 사용하는 id, ID 로 삽입됨 출력입니다 테이블로 삽입 열이 SQL Server:
'myConn is the ADO connection, RS a recordset and ID an integer
Set RS=myConn.Execute("INSERT INTO M2_VOTELIST(PRODUCER_ID,TITLE,TIMEU) OUTPUT INSERTED.ID VALUES ('Gator','Test',GETDATE())")
ID=RS(0)
Select 문의 데이터베이스에구성원을 기술서임을 삽입하십시오 덧붙일 수 있습니다. 정수 myInt) = 삽입하십시오 값 (# 39, & # 39, Fred&), table1 (프나미) Scope_identity 선택 (); 이 때 값을 반환되므로 아이디 실행됨을 스케일러.
행, 행 필드용 후에 추가될 경우 사용할 수 없는 만큼 첫 번째 매개변수에서 제공업체입니다 지정되어 있는 연결 문자열을. 이 때 어느 위치에나 제공업체입니다 연결 문자열을 아니했으나 첫 번째 매개변수에서 새로 삽입됨 행일 필드용 사용할 수 없습니다. 우리가 이사) 은 첫 번째 행의 필드용 제공업체입니다 매개변수에서 마술로 등장했다.
삽입하십시오 수행한 후 한 표 값을 얻을 수 있는 id 열 @@IDENTITY 참조할 수 있습니다. sql.80%29.aspx http://msdn.microsoft.com/en-us/library/aa933167%28v =