2017-10-20 1 views
0

이것은 문제 해결에 관한 것보다 디자인에 관한 질문입니다. 조인 된 뷰에 삽입 SQL Server

제가 그 테이블의 VARCHAR 식별자로서 해석되는 "AreaId"으로 첫 번째 테이블에있는 모든 데이터를 도시하는 도면으로 이러한

CREATE TABLE [CapInvUser](
    [UserId] [int] IDENTITY(1,1) NOT NULL, 
    [Name] [varchar](150) NOT NULL, 
    [AreaId] [int] NULL, 
    [Account] [varchar](150) NULL, 
    [mail] [varchar](150) NULL, 
    [UserLevelId] [int] NOT NULL 
) 

CREATE TABLE [CapInvUserLevel](
    [UserLevelId] [int] IDENTITY(1,1) NOT NULL, 
    [Level] [varchar](50) NOT NULL 
) 

CREATE TABLE [CapInvUserRegistry](
    [UserRegistryId] [int] IDENTITY(1,1) NOT NULL, 
    [UserLevelId] int NOT NULL, 
    [DateRegistry] DATE NOT NULL, 
    [RegistryStatus] VARCHAR(50) NOT NULL, 

) 

같이 세 개의 테이블을 작성한 상기 유저 레벨은 VARCHAR로서 해석되고 해당 테이블의 값 및 마지막 레지스트리 상태의 조인.

지금은 새 사용자를 등록 할 때 별도의 쿼리를 사용하여 세 테이블에 모두 삽입하지만 동시에 모든 테이블에 삽입 할 수 있어야합니다.

삽입 프로 시저를 사용하는 것에 대해 생각해 보았지만, 그것이 원형인지 알 수 없습니다. 내 질문

  • "이 일을 더 apropiate 방법이 있나요?"입니다
  • "저를 그 위에 삽입 할 수 있도록하는보기를 만들 수있는 방법이 있나요? (수동 int 값을 통과하지 않고)"

--This는 테이블의 단지 표현이 아닌 있습니다 진짜. - SQL Server를 올바르게 사용하는 방법을 배우고 있습니다.

답장 및/또는 안내에 감사드립니다.

+0

'INSTEAD OF TRIGGER'을 (를) 볼 수 있습니까? – lad2025

+0

나는 대신 이것으로 답이 될지도 모른다. 그러나 저장 프로 시저를 사용하는 것보다 더 나은지 확실하지 않습니다. – Richard

답변

1

이 작업을 수행하는 가장 일반적인 방법은 세 가지 삽입을 모두 수행하여 FK 관계를 만드는 저장 프로 시저를 작성하는 것입니다.

이것은 필자의 권장 사항입니다.