본문 바로가기

MSSQL

IN 조건 정적쿼리 구현 프로시저 작성시 IN 조건을 사용하는 경우 동적쿼리로 생성하는 경우가 많았는데 KEY 값 여러개를 파라메터 하나에 실어서 정적쿼리로 구현하는 샘플을 찾아서 남겨본다. 먼저 구분자를 ',' 로 한다고 가정할 경우 프로그램에서 파라메터를 'KEY1,KEY2' 같이 문자열을 구분자로 이어서 보내면 구분자를 기준으로 임시테이블에 담아서 해당 임시테이블을 가지고 조건절에 사용하면 된다 아래는 샘플 쿼리... DECLARE @KEY_LIST VARCHAR(MAX); SET @KEY_LIST = 'KEY1,KEY2,KEY3'; -- KEY 값을 담을 임시테이블 생성 DECLARE @TEMP TABLE ( KEYVALUE VARCHAR(1000) NOT NULL ) IF RIGHT(@KEY_LIST, 1) ',' BE.. 더보기
MS SQL Management Studio 2008 R2 IntelliSense 가 안될때 자동완성이 안되서 걍 참고 있었는데... 그래도, 혹시나 해결방법이 있나 찾아보자 해서.. 결국 찾았따 MS 에서 이미 알고 있던터라 HotFix 형태로 나와있네(http://support.microsoft.com/kb/2531482/) 원인은 VS 2010 SP1 을 깔아서 생긴 충돌이라하네... ㅡ,.ㅡ 아직 Service Pack 나온건 아니라서 HotFix 만 별도로 요청해서 받아야 하더라... Hot Fix 요청은 여기서 ( http://support.microsoft.com/kb/2507770 ) 다운로드가 한참 걸리네... ㅡㅡ;; 64 비트 용은 300 MB 라서 다운받는 속도도 느린지라... ................... 발행했다가 일단 비공개로 해놓고.. 직접 패치를 진행해 보았다.. 더보기
MSSQL Identity Column seed 값 변경 테이블에 적용된 마지막 SEED 값을 10 으로 바꾸는 경우 DBCC CHECKIDENT('테이블명', RESEED, 10) 다음 행이 insert 될때는 11 부터 됨. 더보기
MSSQL 원격 연결 오류시 원격 연결을 위해 SQL 구성 관리자에서 TCP/IP 등 해당 프로토콜을 사용함으로 바꾸고 자동 할당된 TCP 포트번호까지 확인해서 Telnet 해보면 접속이 되고 그러면, 일단 SQL Server Service Port 는 연결이 된다는 건데.... Management Studio 로 원격 접속을 해보았으나 원격 연결이 활성화 되지 않았다는 오류만.. ㅠㅠ 알고보니... SQL Browser 서비스가 사용하는 UDP Port ( 기본값 : 1434 ) 가 윈도우 자체 방화벽에서 막혀있어서 안되던 거였음... SQL Browser 의 포트를 확인하거나 변경하는 구성은 콘솔에 나타나지 않아.. 신경을 안썼더니... 참고로. 이 포트 번호도 Process Explorer 로 직접 확인해 본 결과 알 수 있었.. 더보기
MSSQL MDF 복구법 갑자기 WSS 로 구축한 Teamsite 가 안열린다 - DB 에 연결할 수 없다네... 그래서 이래저래 원인을 찾던중 WSS 에 사용하는 원격 SQL DB 가 MDF 파일 자체에 문제가 생긴듯... Management Studio 로 새로 연결을 끊고 다시 연결을 할려니 재 연결이 안되네... 헐 -_-;; 그래서 또 구글링을 하다가 찾음..... 출처 : http://dorajistyle.pe.kr/technology.php/2006/11/17/db_mssql_2005_dbesmemnes 정상적으로 종료가 되었을때만 사용 이건 관리툴에서 단순 연결/해제 를 하는 것과 동일한 기능인듯 하다 1. 로그와 데이터 모두 살아있을 때 복구법 : sp_attach_db ‘DB명’, ‘경로\파일명.mdf’ , ‘.. 더보기
SCOPE_IDENTITY, IDENT_CURRENT, @@identity 비교 IDENT_CURRENT는 Microsoft® SQL Server™ 2000 ID 함수인 SCOPE_IDENTITY와 @@IDENTITY와 유사합니다. 이 세 함수 모두 최근에 생성된 ID 값을 반환합니다. 그러나 각 함수에서 '최근'이 정의되는 범위와 세션은 각기 다릅니다. IDENT_CURRENT는 임의의 세션과 범위에 있는 특정 테이블에 대해 생성된 마지막 ID 값을 반환합니다. @@IDENTITY는 전체 범위에 걸쳐 현재 세션에 있는 임의의 테이블에 대해 생성된 마지막 ID 값을 반환합니다. SCOPE_IDENTITY는 현재 세션과 현재 범위에 있는 임의의 테이블에 대해 만들어진 마지막 ID 값을 반환합니다. 예제 다음은 IDENT_CURRENT, @@IDENTITY, SCOPE_IDENTITY에.. 더보기
MSDE 2005 로그인 삽질 VS.Net 설치시 MSDE2005 가 설치된 상태 sa 계정으로 SQL Server 모드로 로그인을 했으나 실패 사용자 'sa'이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다. (Microsoft SQL Server, 오류: 18452) 도움말을 보려면 다음을 클릭하십시오: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18452&LinkId=20476 윈도우 인증으로 로그인 후 sa 계정 비번 변경후 다시 로그인 해도 실패 - 같은 메세지 다른 사용자 계정을 만들어서 로그인 해도 같은 경우... SQL Server 모드로 로그인만 하면 무.. 더보기