두 개의 저장 프로 시저 SP1 및 SP2가 있습니다. 둘 다 temp 테이블 #Temp를 포함하지만 테이블 구조는 두 개의 저장 프로 시저간에 다릅니다.임시 테이블 오류
SP1과 SP2 모두에서 호출되는 SP3이 있으며 #Temp의 열을 업데이트합니다.
if @CallingSP = SP1
begin update #Temp
set ColumnA= 'abc'
end
if @CallingSP = SP2
begin update #Temp
set ColumnB= 'xyz'
end
지금, 열 "COLUMNA는"단지 SP1 및 SP2 만에 "COLUMNB"에 존재 :
SP3이 같은 것입니다. 따라서 SP1에서 SP3을 실행하면 "ColumnB"에 잘못된 열 오류가 발생합니다. 나는 현재이 문제를 얻기 위해 일을하고 저장 프로 시저의 또 다른 세트를 생성하고 다음과 같이 SP3에서 그들을 실행 무엇
:
if @CallingSP = SP1
begin exec SP4
end
if @CallingSP = SP2
begin exec SP5
end
그 주위에 다른 작업 SP4를 만들 저를 필요로하지 않습니다 있나요 및 SP5?
임시 테이블을 사용하지 마십시오. 테이블 변수를 사용하십시오. . . '임시 테이블 선언 (.). –
sp_executesql을 사용하고 실행할 쿼리 문자열을 작성하십시오. – Slava