내 질문에 정말 바보 같은 소리가 들리 겠지만, 나는 붙어있다. 다음은 SQL Server에서 수행하려고 시도하는 의사 코드입니다.select id from sql
희망 사항을 제안합니다.
내 질문에 정말 바보 같은 소리가 들리 겠지만, 나는 붙어있다. 다음은 SQL Server에서 수행하려고 시도하는 의사 코드입니다.select id from sql
희망 사항을 제안합니다.
사용 변수
declare @foundId int
select @foundId = id from employee where Email='[email protected]'
if @foundId is not null
begin
insert in tasks (... @foundId...)
end
else
begin
insert in employee value Email='blah';
insert in tasks with new id in employee
end
Scope_Identity()
을 사용하면 마지막으로 삽입 한 키 값을 가져올 수 있습니다.
if exists(select id from employee where Email='[email protected]')
begin
insert tasks(employeeid, task)
select id, 'new task' from employee where email = '[email protected]'
end
else
begin
insert employee (email) values ('blah');
select @id = Scope_identity();
insert tasks(employeeid, task) values (@id, 'new task')
end
NB. Ident_Current
또는 @@Identity
을 사용하면 원하지 않는 부작용이 발생하기 쉽습니다. getEmployeeId_byEmail
:
Scope_Identity는 마지막으로 삽입 된 인덱스를 반환하지 않습니다. –
Declare @ID int
select @ID=id from employee where Email='[email protected]'
if @ID is null
begin
insert into employee (Email,...) values ('[email protected]',...)
Select @ID=ident_Current('employee')
end
insert into tasks (employee_ID,...) Values (@ID,..)
는 저장 프로 시저를 형성하기 위해 의사 코드를 사용합니다.
@@Identity
으로 새로운 직원 ID를 얻을 것이다 저장 프로 시저의 두 번째 블록은 :
/* untested */
insert into employee values(/*what ever*/)
insert into task(/*what ever*/, @@Identity)
는보고
here 되세요.
사용자가 작성한 저장 프로 시저에 'sp_'접두사를 사용하지 않으려면 예약 된 접두사를 사용하십시오. http://msdn.microsoft.com/en-us/library/dd172115(v = vs.100) .aspx – fnurglewitz
@ tr3 : 조언 주셔서 감사합니다. –
_ "이 코드는 쓸모가 없습니다"_ 예, 질문과 관련이 없기 때문입니다. –