복붙노트

[SQL] 저장 프로 시저를 사용하여보기 만들기

SQL

저장 프로 시저를 사용하여보기 만들기

이 질문은 불행하게도 내 질문에 대한 답변을하지 않았다, 전에 몇 번을 요청했습니다.

그럼 난이 SQL 직원 ID는 기본 키와 각각 외래 키 (SQL 서버 2008) 테이블, 직원 및 직원 expens을 보유하고 있습니다.

직원 테이블 열, 1. 직원 ID (P 키) 2. 관리자 3. 위치 4. 날짜 5 명 가입

직원 경비 테이블 열, 1. 비용 아이디 (P 키) 2. 직원 ID (F 키) 3. 비용 유형 4. 지출 금액 5. 비용 날짜.

문제는, 내 요구 사항은 다음과 같은 열을 사용하여 뷰를 생성하는 것입니다 그래서 내가 두 테이블을 쿼리하는 SharePoint 웹 부분에 사용되는 뷰를 만들려면,

직원에서 나는 직원 ID와 이름이 필요합니다. 직원 비용에서 나는 유형, 지출 금액, 지출 날짜를 비용 필요가있다.

추가 요구 사항.

ㅏ. 나는 행의 많은 결코보기에가 있어야하는 테이블 직원 비용의 직원에 대한 여러 항목이있는 경우

비. 나는 직원 경비 테이블에 항목이없는 경우에도, 다음도 나는 직원 비용 테이블 컬럼에 널 (null)로, 뷰에서 특정 직원에 대한 행을 얻어야한다.

나를 계속 도와주세요 ...

스택 오버플로 회원의 지시에 따라 필요한 뷰 코드를 추가하려면 편집!

해결법

  1. ==============================

    1.당신이 SP 내에서보기를 만들려면 당신은 동적 SQL을 사용해야합니다.

    당신이 SP 내에서보기를 만들려면 당신은 동적 SQL을 사용해야합니다.

    이 같은.

    create procedure ProcToCreateView 
    as
    exec ('create view MyView as select 1 as Col')
    

    는 뷰를 생성 ..., 그래서 그냥 '사이에 임베드 코드 간부에 문자열 매개 변수로 당신은 이미 당신이보기에 필요한 코드가 그것의 모습으로 발송한다.

    당신이 필요한 이유를 난 정말 아무 생각이 없습니다. 아마 당신은 단지 SP에서보기를 사용하는 방법을 알아야

    create procedure ProcToUseView
    as
    select Col
    from MyView
    
  2. ==============================

    2.내가 저장 프로 시저와 뷰를 만들 내 SQL 데이터베이스에 다음과 같은 동적 SQL 코드를 사용합니다. 그것은 잘 작동합니다 :

    내가 저장 프로 시저와 뷰를 만들 내 SQL 데이터베이스에 다음과 같은 동적 SQL 코드를 사용합니다. 그것은 잘 작동합니다 :

        CREATE PROCEDURE uspCreateView
        AS
        EXEC ('
    
        CREATE VIEW vwDataLayoutFileAssignment
        AS
    
        SELECT b.FileID, d.FieldID
        FROM [File] b, DataLayoutFileAssignment c, [Field] d
        WHERE b.DriverFileID = c.FileID
        AND C.DataLayoutID = d.DataLayoutID
        ')
    
  3. ==============================

    3.MS BOL에서 조인 사용

    MS BOL에서 조인 사용

    그리고 가까운 페이지에서

    있도록 코드로 바뀝니다 :

    CREATE VIEW ExpenseView AS
    BEGIN
       SELECT [Employee Expense].[Employee ID], Employee.[First Name], [Employee Expense].[Expense Type],[Employee Expense].[Expense Amount],[Employee Expense].[Expense Date]
       FROM Employee
       LEFT OUTER JOIN [Employee Expense]
       ON [Employee Expense].[Employee ID] = Employee.[Employee ID]
    END
    
  4. from https://stackoverflow.com/questions/7712702/creating-a-view-using-stored-procedure by cc-by-sa and MIT license