본문 바로가기

전체 글

(304)
[MSSQL 2000]OPENQUERY 사용하기 연결된 서버(LINKED SERVER)로 구성된 원격 DB서버에서 필요한 데이터만 쿼리하여 결과를 가져오는 방법이다. OPENQUERY(LINKEDSERVER,'연결된 서버내에서 실행할 쿼리문') 첫 번째 인자는 LINKED SERVER의 이름이며 작은 따옴표로 묶지 않는다. 두 번째 인자는 실제 쿼리문이며 작은 따옴표로 묶은 문자열이 된다. 그러므로 이 쿼리문 안에서 또 문자열을 써야한다면 아래 예제와 같이 작은 따옴표를 두 번 연달아 써준다. LINKED SERVER를 ㅣ_SERVER라고 할 때, SELECT컬럼CC, 컬럼DD, 컬럼EE, 컬럼FF FROMOPENQUERY(L_SERVER,' SELECTAA.컬럼CC, AA.컬럼DD, AA.컬럼EE, AA.컬럼FF FROM테이블AA AA WITH (N..
[MSSQL 2000] 다른 테이블과 조인걸고 DELETE 하기 일반 DELETE문과 조인거는 SELECT문의 단순한 결합이라고 생각하면 된다. WHERE없는 일반적인 DELETE문을 만들어놓는다. 그리고 삭제하길 원하는 데이터만 나오도록 쿼리문을 만든다. SELECT 부라부라 FROM 부라부라 INNER JOIN 부라부라 의 형태가 나올것인데 이 중에서 FROM부터 마지막까지를 복사한다. DELETE시에 삭제하고자 하는 테이블을 첫번째 FROM에 놓고, 조인걸고자 하는 테이블을 두번째 FROM에 놓고, 그담부터 자유롭게 조인건다. 1.일반 DELETE문 DELETE FROM테이블AA 2.삭제할 내용만 뽑아내는 SELECT문 SELECTAA.* FROM테이블AA AA WITH (NOLOCK) INNER JOIN 테이블BB BB WITH (NOLOCK) ON AA.컬럼..
[MSSQL 2000] ORACLE의 MINUS 연산 구현(차집합) 차집합의 경우는 아래와 같이 구현하면 되지만 한쪽이라도 테이블이 매우 큰 경우에는 이 방법으로는 시간이 너무 오래 걸린다. 그래서 그럴 겨우에는 그냥 교집합 구한담에 원하는 집합에서 교집합을 제거하는 순차적인 방법이 훠~얼씬 빠르다. SELECTC.ch_Name FROMCharacter C WHERENot Exists ( SELECT Ch_Name FROM Experence WHERE ch_Name = c.ch_Name ) SELECTC.ch_Name FROMCharacter C Left Outer Join Experence E ON C.ch_Name = E.ch_Name WHEREE.ch_Name Is Null
[아이폰]스트리밍 라디오 어플 - SmartTunes 2010년 1월 28일 현재 무료 어플이다. 음악 장르별로 스트리밍 음악을 들을 수 있다. 나는 메탈을 좋아해서 메탈 부분을 들어봤는데 음질도 나쁘지 않고, 음악 선곡도 좋았다. 위 화면은 현재 MetalRock06이라는 채널에서 스트리밍을 받고 있는 화면이다. 음표 부분을 누르면 스트리밍 채널을 선택하는 화면으로 바뀌고, Timer 버튼을 누르면 정해진 시간동안 음악이 나오고 꺼진다. Alarm이나 Sleep은 아직 안써봤지만 뭐 구지 설명할 필요도 없을 것이다. 아래 그림은 음악 장르별로 스트리밍 채널을 선택하는 화면이다. 아쉬운점은 듣고 있는 음악의 좋아서 곡 명을 알고자 해도 표시를 안해주니 알 수가 없다는 것이다.
[아이폰]셀카에 강한 추천 어플 - ProCamera 아이폰은 참 셀카 찍기가 나쁘다. 순정폰일 경우에는 터치를 해야 찍히니 자세도 잘 안나오고 내가 가운데 제대로 위치했는지 알기도 어렵고.. 탈옥폰일 경우에는 볼륨키로 사진찍는 기능을 넣을 수 있으나 볼륨키 누르다가 카메라 흔들리기 일쑤이고.. 그러다가 하루는 PodGate를 통해서 오늘만 무료 어플을 검색중에 아래와 같은 어플을 찾았다. 이름하야 ProCamera!! - 안타깝게도 현재는 $1.99이다.. 이 어플의 원리는 참 간단하다. 아래가 어플 실행 화면인데.. 위의 그림을 보면 눈치가 빠른 사람은 알아챌꺼 같은데.. 그렇다!! 카메라가 흔들리지 않으면 사진을 찍는것이다. 가운데 흔들리는 카메라 이미지를 터치하고 자세잡고 가만히 있으면 찰칵! 하고 사진이 찍힌다. 정말 굳 아이디어 아닌가!!?? 그..
[MSSQL 2000]테이블명으로 PK 컬럼 반환하기 SELECTC.NAME FROMSYSOBJECTS O INNER JOIN SYSINDEXES I ON (O.ID = I.ID) INNER JOIN SYSCOLUMNS C ON (I.ID = C.ID) WHEREO.NAME = '테이블명' AND (I.STATUS & 0X800) = 0X800 --PK를 의미하는거 같다. AND (C.NAME = INDEX_COL (@TABLENAME, I.INDID, 1) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 2) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 3) OR C.NAME = INDEX_COL (@TABLENAME, I.INDID, 4) OR C.NAME = INDEX_COL (@TABL..
[MSSQL 2008]MS-SQL 2008 서비스팩1을 설치해야 하는 이유 MS-SQL 2008이 처음 나왔을 때 뭐가 바뀌었나 해서 Express버전을 설치해보고 그 날로 바로 지웠다. 천여개의 테이블과 수백개의 저장프로시저를 사용하는데 원하는 테이블이나 저장프로시저만 검색해서 볼 수 있는 필터링 기능은 꼭 필요한 기능인데 이 기능에 버그가 있었기 때문이었다. 또한 2008에서 한 가지 버그를 또 발견하였는데 만약 내가 여러 데이터베이스 중 중간쯤에 있는 하나의 데이터베이스에만 접근 할 수 있는 권한이 있을 때(주로 웹호스팅 서비스를 받고 있을 때 이런 경우가 많이 발생한다) 데이터베이스 접근 권한이 없다는 오류와 함께 데이터베이스 목록을 가져오지 못하는 상황이 발생하게 되며 결국 내가 권한이 있는 데이터베이스까지 가보지도 못하게 된다. 그러다가 어제 서비스팩을 설치해보고 버..
[C#]프로그램 중복 실행 방지(뮤텍스 사용 안함) 우리는 보통 프로그램 중복 실행을 방지한다고 표현하는데 외국에서는 중복 인스턴스 실행을 방지한다고 표현하나보다. 여기저기 뒤진 끝에 외국 소스를 찾았는데 싱글 인스턴스를 유지하는 방법이라고 써 있었다. 아무튼 프로그램 중복 실행을 방지한다는 것은 뭐 다 알다시피 메모장을 실행시킨 후 다시 메모장을 실행시켜도 이미 열려있는 메모장이 있으면 또 열리지 않는다는 것을 의미한다. 처음에 데브피아나 여러 곳에서 중복실행 방지에 대해서 찾았었는데, 뮤텍스 방법 위주로만 나오길래 무슨 방법인가 했다. 예전에는 프로그램명으로 검색해서 같은게 떠있으면 두 번째 실행을 방지하는 방법을 썼었는데 말이다. 아무튼 뮤텍스가 뭔가 해서 대충 찾아보니(일과시간에 잠깐 짬내서 찾느라고 자세하게는 알아보지 못했지만) 프로그램의 실행상..