[SQL] SQL 서버에서 다른 저장 프로 시저 저장 프로 시저를 실행
SQLSQL 서버에서 다른 저장 프로 시저 저장 프로 시저를 실행
어떻게 내가 SQL 서버에서 다른 저장 프로 시저 저장 프로 시저를 실행할 수 있습니까? 어떻게 두 번째 프로 시저의 매개 변수를 전달합니다.?
해결법
-
==============================
1.당신은 단지 두 번째 SP에 의해 일부 특정 작업을 수행 할 다시 SP의 값이 필요하지 않은 경우 간단하게 수행
당신은 단지 두 번째 SP에 의해 일부 특정 작업을 수행 할 다시 SP의 값이 필요하지 않은 경우 간단하게 수행
Exec secondSPName @anyparams
당신이 당신의 첫 번째 안에 두 번째 SP에 의해 반환 된 값을 필요로하는 경우 다른, 다음 컬럼의 동일한 숫자와 두 번째 SP에 의해 열 반환의 동일한 정의와 임시 테이블 변수를 만들 수 있습니다. 그런 다음 먼저 SP로에서이 값을 얻을 수 있습니다 :
Insert into @tep_table Exec secondSPName @anyparams
최신 정보:
두 번째 SP에 매개 변수를 전달하려면 다음을 수행하십시오
Declare @id ID_Column_datatype Set @id=(Select id from table_1 Where yourconditions) Exec secondSPName @id
업데이트 2 :
ID의 타입이 int이며 이름은 VARCHAR (64) 유형이고 두 번째 SP 반환 ID와 이름을 가정하자.
먼저 SP에서이 값을 선택하려면 지금, 다음에 임시 테이블 변수와 삽입 값을 만듭니다
Declare @tep_table table ( Id int, Name varchar(64) ) Insert into @tep_table Exec secondSP Select * From @tep_table
이렇게하면 두 번째 SP에 의해 반환 된 값을 반환합니다.
희망이 분명 모든 의심.
-
==============================
2.이 같은 하나 개의 저장 프로 시저가 있다고 가정
이 같은 하나 개의 저장 프로 시저가 있다고 가정
먼저 저장 프로 시저 :
Create PROCEDURE LoginId @UserName nvarchar(200), @Password nvarchar(200) AS BEGIN DECLARE @loginID int SELECT @loginID = LoginId FROM UserLogin WHERE UserName = @UserName AND Password = @Password return @loginID END
지금 당신은 다음과 같은 다른 저장 프로 시저에서이 프로 시저를 호출 할
두 번째 저장 프로 시저
Create PROCEDURE Emprecord @UserName nvarchar(200), @Password nvarchar(200), @Email nvarchar(200), @IsAdmin bit, @EmpName nvarchar(200), @EmpLastName nvarchar(200), @EmpAddress nvarchar(200), @EmpContactNo nvarchar(150), @EmpCompanyName nvarchar(200) AS BEGIN INSERT INTO UserLogin VALUES(@UserName,@Password,@Email,@IsAdmin) DECLARE @EmpLoginid int **exec @EmpLoginid= LoginId @UserName,@Password** INSERT INTO tblEmployee VALUES(@EmpName,@EmpLastName,@EmpAddress,@EmpContactNo,@EmpCompanyName,@EmpLoginid) END
위에서 볼 수 있듯이, 우리는 서로 한 저장 프로 시저를 호출 할 수 있습니다
-
==============================
3.예,이 같은 것을 할 수 있습니다 :
예,이 같은 것을 할 수 있습니다 :
BEGIN DECLARE @Results TABLE (Tid INT PRIMARY KEY); INSERT @Results EXEC Procedure2 [parameters]; SET @total 1; END SELECT @total
-
==============================
4.당신은 교대 저장 프로 시저에서 사용자 정의 함수를 호출 할 수 있습니다
당신은 교대 저장 프로 시저에서 사용자 정의 함수를 호출 할 수 있습니다
이 저장 프로 시저를 호출에 문제를 해결할 수 있습니다
-
==============================
5.귀하의 sp_test : 리턴 전체 이름
귀하의 sp_test : 리턴 전체 이름
USE [MY_DB] GO IF (OBJECT_ID('[dbo].[sp_test]', 'P') IS NOT NULL) DROP PROCEDURE [dbo].sp_test; GO CREATE PROCEDURE [dbo].sp_test @name VARCHAR(20), @last_name VARCHAR(30), @full_name VARCHAR(50) OUTPUT AS SET @full_name = @name + @last_name; GO
당신의 sp_main에서
... DECLARE @my_name VARCHAR(20); DECLARE @my_last_name VARCHAR(30); DECLARE @my_full_name VARCHAR(50); ... EXEC sp_test @my_name, @my_last_name, @my_full_name OUTPUT; ...
-
==============================
6.예 , 우리가 저장 프로 시저 내부의 함수를 호출하는 방법에 그것은 간단합니다.
예 , 우리가 저장 프로 시저 내부의 함수를 호출하는 방법에 그것은 간단합니다.
에 대한 예를 들어, 사용자가 선택 쿼리에서 나이 기능과 사용을 정의 만들 수 있습니다.
select dbo.GetRegAge(R.DateOfBirth, r.RegistrationDate) as Age,R.DateOfBirth,r.RegistrationDate from T_Registration R
-
==============================
7.절차 예 :
절차 예 :
Create PROCEDURE SP_Name @UserName nvarchar(200), @Password nvarchar(200) AS BEGIN DECLARE @loginID int --Statements for this Store Proc -- -- -- --execute second store procedure --below line calling sencond Store Procedure Exec is used for execute Store Procedure. **Exec SP_Name_2 @params** (if any) END
from https://stackoverflow.com/questions/15802511/execute-a-stored-procedure-in-another-stored-procedure-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 빨리 mysql_num_rows도 () 또는 'SELECT COUNT ()'이다 - SQL & PHP? (0) | 2020.05.23 |
---|---|
[SQL] T-SQL에 중괄호 (0) | 2020.05.23 |
[SQL] 포스트 그레스 오류 : 표현으로 사용되는 하위 쿼리에 의해 반환 된 둘 이상의 행 (0) | 2020.05.23 |
[SQL] MySQL은 / SQL 텍스트 필드의 처음 40 개 문자를 검색? (0) | 2020.05.23 |
[SQL] 날짜에서 시간을 제거하는 방법 (0) | 2020.05.23 |