첫 번째 삽입에서 ID를 가져 와서 두 번째 삽입에 사용하는 데 문제가 있습니다. 여기에 (내가 저장 프로 시저를 사용하고 있습니다) 내 SQL입니다 : 내가 처음 저장 프로 시저에 의해 추가 된 레코드의 ID를 얻을 필요가두 번째 저장 프로 시저에서 사용하도록 저장 프로 시저에서 수행 한 첫 번째 삽입에서 ID를 가져 오는 문제
DECLARE @JoinDate date
DECLARE @ID int
SET @JoinDate = getdate()
EXEC Members_Add $(UserID), '$(UserName)',
@JoinDate, '$(firstname)', '$(lastname)', NULL,
'$(Country)', NULL, '$(stateorprovince)', '$(city)',
'$(ziporpostalcode)', '$(addressline1)', '$(addressline2)',
'$(MailCountry)', NULL, '$(mailstateprovince)', '$(MailCity)',
'$(mailzipcode)', '$(mailaddress)', NULL, NULL, NULL,
'$(mobilephone)', NULL, '$(Fax)', '$(Email)', NULL, NULL
SELECT @ID = SCOPE_IDENTITY()
EXEC Merchants_Add @ID, NULL, '$(BusinessName)', '$(CorporateName)',
'$(contactperson)', '$(OfficePhone)', '$(website)',
'$(DirectoryListing)', 'False'
, 나는 당신이 SELECT @@ IDENTITY 대신 SELECT 최대를 사용해야 읽어 (ID)하지만이 보이지 않는다 작동하는 ...
편집 : 난 그냥 SELECT SCOPE_IDENTITY AS NEW_ID
에 SELECT @@IDENTITY AS NEW_ID
업데이트 지금은 ... A는 에러를 nvarchar을 int로 변환 할 수있는 아이디어를 얻고있다?
편집 # 2 : 지금은 컬럼에 vaule NULL
을 삽입 할 수 없습니다지고있어 'MEMBERID'@ID
가 Merchants_Add
절차에있는 하나 그 ... 코드를 다시 업데이트되었습니다.
문서에서 : 동일한 범위의 ID 열에 삽입 된 마지막 ID 값을 반환합니다. 범위는 모듈, 즉 저장 프로 시저, 트리거, 함수 또는 일괄 처리입니다. 따라서 동일한 저장 프로 시저, 함수 또는 일괄 처리에있는 두 문은 동일한 범위에 있습니다. –
사양 읽기 ... D 및 +1 –
SELECT SELECT @@ IDENTITY AS NEW_ID SELECT SCOPE_IDENTITY() AS NEW_ID로 변경하려고 시도했지만 이제는 nvarchar를 오류로 변환 할 수 없습니다. 질문을 업데이트했습니다. 다른 모습을보실 수 있습니까? – Matt