/****** Object:  Table [dbo].[Auth_Role_Page]    Script Date: 10/23/2014 16:55:25 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Auth_Role_Page](
[role_page_idx] [int] NOT NULL,
[com_code] [nvarchar](5) NULL,--회사코드
[role_id] [nvarchar](20) NULL,--권한수준
[page_id] [varchar](8) NULL,--메뉴번호
[reg_date] [datetime] NULL,
[reg_userid] [nvarchar](20) NULL,
[pop] [char](1) NULL,
[seq] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO



이런 구조의 테이블이 있습니다.

뭔가 제약 조건이 걸리긴 했는데 내용을 보니 그냥 날자를 reg_date 에 넣는것 뿐이였고

의미 없는 role_page_idx 에만 키값이 걸려있고 아무것도 안되있더군요;;

그렇다보니 아래처럼 입력할경우 중복처리가 안되버립니다.

테이블 세팅 자체에서 그룹키(?)같은게 지정되있어서 중복 안되게끔 해야하는데 

Role_Id ,Page_Id , com_code  세개 합쳐서 중복이 안되게끔..

테이블 열을 바꿀수는 없고

그룹키 지정같은걸 해야하는데 방법을 모르겠구

IF OBJECT_ID('tempdb..#tblComCode') IS NOT NULL -- 임시테이블이 있을 경우
       DROP TABLE #tblComCode                          -- 임시테이블 삭제       
CREATE TABLE #tblComCode
( com_code NVARCHAR(5))
GO
IF OBJECT_ID('tempdb..#tblRoleId') IS NOT NULL -- 임시테이블이 있을 경우
       DROP TABLE #tblRoleId                          -- 임시테이블 삭제
CREATE TABLE #tblRoleId
(Role_Id NVARCHAR(20))
GO
IF OBJECT_ID('tempdb..#tblPageId') IS NOT NULL -- 임시테이블이 있을 경우
       DROP TABLE #tblPageId                          -- 임시테이블 삭제
CREATE TABLE #tblPageId
(Page_Id NVARCHAR(4))
GO
IF OBJECT_ID('tempdb..#Auth_Role_Page') IS NOT NULL -- 임시테이블이 있을 경우

       DROP TABLE #Auth_Role_Page                          -- 임시테이블 삭제
CREATE TABLE #Auth_Role_Page
(
com_code NVARCHAR(5),
role_id NVARCHAR(20),
page_id NVARCHAR(4)
)
GO
-- 사업장 설정
INSERT INTO #tblComCode
        ( com_code )
VALUES  
( N'C001' ),--
( N'C002' ),--
( N'C003' ),--
--( N'C004' ),--
--( N'C005' ),
( N'C006' ),--
--( N'C007' ),
--( N'C008' ),
( N'C009' )--
--( N'C010' )--
GO
-- 권한 설정
INSERT INTO #tblRoleId
        ( Role_Id )
VALUES  ( N'admin' ),
   ( N'root' ),
   ( N'user' )
GO
-- 권한 설정할 메뉴
INSERT INTO #tblPageId
        ( Page_Id )
VALUES  
( N'B569' ),
( N'B896' ),
( N'B897' ),
( N'B898' ),
( N'B899' ),
( N'B865' ),
( N'B861' ),
( N'B900' )
GO

--SELECT A.com_code,B.Role_Id,C.Page_Id 
--FROM #tblComCode A
--CROSS APPLY #tblRoleId B
--CROSS APPLY #tblPageId C
--ORDER BY A.com_code,B.Role_Id,C.Page_Id

INSERT INTO Auth_Role_Page
        ( com_code, role_id, page_id )
SELECT A.com_code,B.Role_Id,C.Page_Id 
FROM #tblComCode A
CROSS APPLY #tblRoleId B
CROSS APPLY #tblPageId C
ORDER BY A.com_code,B.Role_Id,C.Page_Id

SELECT * FROM Auth_Role_Page

DROP TABLE #Auth_Role_Page 
DROP TABLE #tblPageId 
DROP TABLE #tblRoleId                          -- 임시테이블 삭제
DROP TABLE #tblComCode                          -- 임시테이블 삭제       


이미 중복된 데이터도 들어가 버렸다는것도 문제인데 중복된걸 삭제할 방법을 모르겠고


[한열만 중복된 데이터 말고 3개열을 합쳐서 비교해야하는데 그런 예제를 못찿겠고]


아무튼 많이 골치 아픈 상황이네요


중복되지 않게 넣는법과


이미 중복해서 들어간 데이터 삭제하는 법좀 알려주세요

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 36277
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 18882
8303 데이터를 편집창에 넣을때 자동으로 기호 붙이기 [5] park87 2014.10.24 2898
8302 열 '~~'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다. [1] park87 2014.10.24 8810
8301 테이블 내에서 여러열을 기준으로 중복된 행 제거 [1] park87 2014.10.23 3093
8300 명령어로 사용자 생성 방법 질문합니다. [2] sams 2014.10.23 3193
8299 시스템 운영 중 오류 덤프가 발생했습니다. 아직모자란사람 2014.10.23 2460
» 중복 데이터 제거 및 그룹 키((?)로 재설정하기 [1] park87 2014.10.23 3143
8297 MSSQL join할 때 문제가 있습니다. [4] 임쑤 2014.10.22 3241
8296 부분 반복 쿼리 만들기 [5] park87 2014.10.22 2693
8295 초보 문의 [1] 땅훈 2014.10.22 2169
8294 모바일 게임 관련 Harlem 2014.10.21 2322
8293 초보자 질문이 있습니다 ㅠㅠ [2] 곰요 2014.10.21 2505
8292 인덱스 조각화가 99% 입니다. 다시구성과 다시 작성의 차이를 알고 싶습니다. [1] 호짱 2014.10.21 4008
8291 이런 기능 있는지 확인 좀 부탁드리겠습니다. [2] 오오오뇨뇨요 2014.10.21 2367
8290 MSSQL 소수점 자리수 질문드립니다. [4] 지에나르 2014.10.21 26088
8289 PK 중복 키 문제 입니다.. [1] 바보쿠우 2014.10.21 2471
8288 초보자 한가지 질문있습니다. [5] 곰요 2014.10.21 2804
8287 개체 탐색기에서 SSMS 에서 로그인한 계정 DB만 보이게 하는 방법이 없나요? AceCarrot 2014.10.20 3370
8286 varchar 형 insert 할때 질문입니다. [2] 희망나라 2014.10.20 2501
8285 mssql 2008 설치문의드립니다. 빡끄쎄엠 2014.10.20 3286
8284 쌩초보의 연산 질문 입니다. [2] 익스 2014.10.20 2581





XE Login