명령 매개 변수없이 insert 문 내에서 함수/프로 시저를 호출하는 방법. 예 :삽입 문 내에서 함수/프로 시저를 호출하는 방법
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
명령 매개 변수없이 insert 문 내에서 함수/프로 시저를 호출하는 방법. 예 :삽입 문 내에서 함수/프로 시저를 호출하는 방법
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
또한 저장 프로 시저에서 INSERT
데이터에 INSERT INTO... SELECT
INSERT INTO myTable (col1, col2, col3....)
SELECT 1, 2, mySP_or_mySDF(), 3, 4
를 사용하려고, 당신은 임시 테이블을 생성하고 삽입해야합니다 결과를 임시 테이블에 먼저 넣은 다음 결과를 사용하여 최종 테이블에 삽입 할 수 있습니다.
당신이 원하는 경우
이Insert into myTable (....) values (1,2,dbo.mySP_or_mySDF(), 3,4)
보이지만 sp가 아닌 기능을 호출 할 수 있습니까? – bjan
당신은 문 SQL을 제외하고는 SELECT/UPDATE/INSERT 문 내에서 저장 프로 시저를 호출 할 수 없습니다 :
insert into <whatever>
exec <some sql statement here>;
(및 관련 구조를).
저장 프로 시저가 실제로 값을 반환하지 않습니다. 음, 정수를 반환합니다. 그래서, 당신은 할 수 :
declare @retval int;
exec @retval = mysp;
insert into myTable(col1, col2, col3, col4)
select 1, 2, @retval, 3, 4
당신은 저장 프로 시저를 가지고있는 SP 본문에 다음과 같은 성명을 포함하여 "반환"4 개 값을 수 있습니다 : 다음 myTable에로 삽입을하고
select 1, 2, <whatever>, 3, 4
과 (col1, col2, col3, col4) exec mysp;
동적 인 SQL이 필요하지 않습니다.'insert into MyTable exec MyProc'은 @Pondlife와 잘 작동합니다. – Pondlife
. . 당신 말이 맞습니다. –
보이는 함수는 호출 할 수 있지만 sp가 아닌가요? – bjan
@bjan 제 편집 내용을 보려면 먼저 저장된 테이블의 데이터를 임시 테이블에 추가해야합니다. 그런 다음 추가 값을 삽입하려고하므로 사용할 수 있습니다. 그래서 그것에 대한 또 다른 질문입니다 - http://stackoverflow.com/questions/653714/how-to-select-into-temp-table-from-stored-procedure – Taryn
나는 오라클의 시퀀스의 사용법을 모방하고 싶다. 그래서 그것은 하나의 명령문 안에 있어야합니다. – bjan