2011-03-01 2 views
0

변수에 둘 이상의 값을 저장하려면 저장 프로 시저에서 어떻게 할 수 있습니까?저장 프로 시저에 둘 이상의 값을 저장하려면 어떻게해야합니까?

은 우리가 보통 프로그래밍에서 배열 개념이 의미하는 당신이 구출 한 후 임시 테이블은 우리가 저장 단지 절차의 범위 내에서 필요한

+0

[csv] (http://en.wikipedia.org/wiki/Comma-separated_values)와 같은 것을 의미합니까? –

+0

네, 테이블이라고 부릅니다 – Luis

+0

루이스가 지적했듯이, 데이터베이스는 테이블을 사용합니다 ... – MatBailie

답변

2

경우 저장 프로 시저에서 그런 일을해야합니까.

2

특정 데이터베이스에 따라 몇 가지 옵션을 사용할 수 있습니다.

SQL 서버에서, 당신은 모든 연결에 당신의 연결 (CREATE TABLE #YourTable(.....))

  • 볼 수 전역 임시 테이블

    • 임시 테이블을 정의 할 수 있습니다 (CREATE TABLE ##YourTable(.....))
    • 테이블 변수 (DECLARE @YourVariable TABLE (.....))
  • 0

    완전한 테이블 인 변수를 만들 수 있습니다. 다음은 코드 샘플입니다.

    USE AdventureWorks2008R2; 
    GO 
    DECLARE @MyTableVar table(
        EmpID int NOT NULL, 
        OldVacationHours int, 
        NewVacationHours int, 
        ModifiedDate datetime); 
    UPDATE TOP (10) HumanResources.Employee 
    SET VacationHours = VacationHours * 1.25, 
        ModifiedDate = GETDATE() 
    OUTPUT inserted.BusinessEntityID, 
         deleted.VacationHours, 
         inserted.VacationHours, 
         inserted.ModifiedDate 
    INTO @MyTableVar; 
    --Display the result set of the table variable. 
    SELECT EmpID, OldVacationHours, NewVacationHours, ModifiedDate 
    FROM @MyTableVar; 
    GO 
    --Display the result set of the table. 
    SELECT TOP (10) BusinessEntityID, VacationHours, ModifiedDate 
    FROM HumanResources.Employee; 
    GO 
    

    정상적인 테이블처럼 선언 할 수 있습니다. 절차가 끝나면 범위를 벗어날 것입니다.

    이들을 테이블 변수이라고합니다. What's the difference between a temp table and table variable in SQL Server?

    : 좋은 그래서 여기 둘 사이의 차이에 대해 게시있다 create table #tmp (Col1 int, Col2 int);

    : 당신이 만들 수 임시 테이블, 거의 같은 방법으로 그 일을 당신이 선언 할 것으로 기대도있다 그리고 원래의 질문으로 돌아가려면 테이블 변수를 생성하고 그것을 배열로 가장 할 수 있습니다. 배열 함수에 대해서는 SQL의 관점에서 생각하면됩니다. 따라서 .Find 대신 WHERE 절을 사용해야합니다.

    관련 문제