SSMS 쿼리창 아래 색상 변경하기 


안녕하세요.
고코더 입니다.


많은 데이터베이스를 접속하다보면 착각하여 잘못된 곳을 수정하다가 실수하는 경우가 종종 있습니다.
특히 실서버,개발서버가 제일 혼동하기 쉽습니다. SSMS에서는 이런 혼동을 막기위해 쿼리창 밑에 색상으로 구별할 수 있는 기능을 제공하고 있습니다. 


 1. 데이터베이셔 연결 창에서 옵션을 클릭 합니다. 


 2. 그 다음 연결 속석 탭에서 사용자 지정색 사용을 체크하고 선택(E)를 클릭 합니다. 


 3. 그럼 지정색으로 해당 영역에 표시 됩니다. 


 4. 그리고 SSMS를 재부팅하고 다시 접속해보면 쿼리창 아래에 원하는 색상으로 지정되어서 헷갈리는걸 방지 할 수 있습니다. 



마무리


실서버에 모르고 UPDATE 하는 불상사가 없기를....


댓글을 달아 주세요


rownum과 같은 mssql 방법


안녕하세요.
고코더 입니다.



시퀀스가 없는 테이블을 조회한 후에 해당 컬럼에 대한 순차적인 정보를 가져와야 할 경우 사용할 수 있는 방법입니다. 오라클에서는 rownum이 간단하게 해결 가능하지만 MSSQL은 약간의 방법이 필요 합니다.

 1. 해당 테이블의 select로 조회 한 결과 
1
2
3
4
5
6
7
8
9
SELECT
  ROW_NUMBER() OVER(ORDER BY GoCoder desC) AS SEQ
       ,[GoCoder]
       ,[Blog]
       ,[Homepage]
       ,[Go]
       ,[gocoder_net]
       ,[gocoder.tistory.com]
FROM [db_gocoder].[dbo].[Go]
cs

 2. 고유 번호가 없는 테이블입니다. (결과 창 맨앞에 있는 순번은 결과창 순번입니다. 데이터가 아닙니다.)



 3. ROW_NUMBER()를 사용하여 해당 테이블 앞에 고유 순번을 매길려고 합니다.
아래 쿼리를 실행해주세요. 

1
2
3
4
5
6
7
8
9
SELECT
  ROW_NUMBER() OVER(ORDER BY GoCoder desC) AS SEQ
       ,[GoCoder]
       ,[Blog]
       ,[Homepage]
       ,[Go]
       ,[gocoder_net]
       ,[gocoder.tistory.com]
FROM [db_gocoder].[dbo].[Go]
cs

 4. 원래 데이터 앞에 SEQ라는 순차적인 순번이 생겼습니다. 개발하기 편리하게 되었습니다. 


 5. 이 방법의 유의점은 정렬이 필요한 컬럼을 지정해줘야 합니다. Over안에 오더바이를 꼭 넣어줘야 합니다. (오라클은 그냥 되는데 귀찮네요)

1
ROW_NUMBER() OVER(ORDER BY 정렬컬럼 desC) AS SEQ
cs



마무리


고유번호가 있어야 개발이 쉽죠 


댓글을 달아 주세요


table column을 검색해서 찾아보기


안녕하세요.
고코더 입니다.


데이터베이스에 있는 모든 테이블에서 특정 컬럼명을 검색하는 방법을 소개합니다. 
어렴풋 스키마를 외운분들은 이 쿼리를 통해 금새 필요한 테이블을 찾을 수 있습니다. 
저도 자주 사용하는 방법입니다.

 1. 아래 SQL을 실행해보세요. 저는 임시로 만든 테이블에 GoCoder 라는 이름으로
해당 컬러명을 검색 합니다.

1
2
3
4
5
6
7
SELECT     
       t.NAME      AS table_name,
       c.NAME      AS column_name
FROM       sys.tables  AS t
INNER JOIN sys.columns AS c
ON         t.object_id = c.object_id
WHERE      c.NAME LIKE '%GoCoder%'
cs



 2. 결과는 이렇게 테이블 네임과 함께 컬럼명이 노출 됩니다. 이렇게
컬럼을 통해 테이블을 찾아낼 수 있어서 편리합니다.


 3. SQL을 분석한 분은 아시겠지만 만약에 where 만 없이 실행한다면 
1
2
3
4
5
6
SELECT     
       t.NAME      AS table_name,
       c.NAME      AS column_name
FROM       sys.tables  AS t
INNER JOIN sys.columns AS c
ON         t.object_id = c.object_id
cs


 4. 이렇게 모든 테이블을 조회 하는 쿼리로 사용이 가능합니다. 




마무리

눈으로 찾지 마세요. 손가락에 양보하세요.


댓글을 달아 주세요


데이터베이사 사용자들의 세션 정보 보기


안녕하세요.
고코더 입니다.


MSSQL 에서는 현재 DB에 접속한 사용자의 정보를 가져오는 방법을 알아봅니다.
사용자가 어떤 로그인 이름으로 언제 접속했고 어떤 프로그램으로 무엇을 실행하는지 확인해봅니다.
현재 사고치고 있는 개발자를 잡아내는 DBA들이 자주 사용하는 방법이죠.



 1. 아래 SQL을 실행합니다. 각 칼럼을 보기 좋게 컬럼명을 바꿔 놓았습니다.
1
2
3
4
5
6
7
8
9
10
SELECT S.spid,
       S.loginame as '접속자명',
       S.login_time as '로그인 시간',
       S.last_batch as '마지막 실행시간',
       C.client_net_address  as '접속 IP' ,
          S.program_name as '접속 프로그램',
          S.cmd as '현재 실행중인 명령어'
FROM   sys.sysprocesses S,
       sys.dm_exec_connections C
WHERE  S.spid = C.session_id
cs


 2. 조회된 결과 값입니다. 어떤 사용자가 무엇을 하는지 쉽게 확인 가능합니다.




마무리


예전 부장님이 자주 돌려보던 쿼리 


댓글을 달아 주세요


Database 현재 접속 사용자는?


안녕하세요.
고코더 입니다. 



MSSQL을 사용하다보면 현재 데이터베이스에 몇명의 접속자가 연결되어 사용하고 있는지 확인하고 싶을때가 있습니다. 얼마나 많은 개발자들이 접속해서 작업을 하는지 어떤 사용자가 문제를 일으키는지 확인해봅시다.


 1. 아래에 SQL을 MSSQL에서 실행해보세요.

1
2
3
4
5
6
7
8
SELECT
    DB_NAME(dbid) as '데이터베이스',
    COUNT(dbid) as '현재 접속자 수'
FROM
    sysprocesses
WHERE
    dbid > 0
GROUP BY dbid ;
cs

 2. 쿼리 실행에 결과 화면 입니다.  DB에 해당 숫자만큼에 접속자가 발생하고 있습니다.



마무리


많이 접속해 있을수록 할일이 많은 데이터베이스







댓글을 달아 주세요


대문자 소문자 단축키 알아봐요


안녕하세요.
고코더 입니다.


 1. SSMS에서 SQL을 작성하다 보면 대문자로 혹은 소문자로 변경해야 하는
경우가 있습니다. 제가 가장 자주 사용하는 단축키 인데요.
우선 단축키 정체는 이렇습니다. 간단하죠? 한번 실습을 해보겠습니다.

대문자로
CTRL + SHIFT + U
소문자로
CTRL + SHIFT + L


 2. 원하는 쿼리를 드래그합니다. 그리고 CTRL + SHIFT + U를 누르면 대문자로 변신
프로시저를 많이 쓰는 회사는 보통 대문자로 통일해서 생성합니다. 


 3. 이번에도 드래그한 다음 CTRL + SHIFT + L 를 누르며 소문자로 변신
개인적으로 소문자 가독성이 떨어져서 저는 잘 안사용 합니다.

SQL은 명령어는 대소문자 구별이 없기 때문에 본인이 원하는 가독성을 찾아서 사용하시면 됩니다.


마무리


대문자,소문자 어떤게 더 편하세요?

댓글을 달아 주세요


DATABASE Create


안녕하세요.
고코더 입니다.


SSMS를 이용해 데이터베이스를 생성하는 방법을 알아보겠습니다.
사실 UI가 잘되어 있어서 누구나 직감적으로 만들 수 있을 정도로 쉽지만
그래도 아쉬운 분들을 위해 남겨보려고 합니다. 


 1. MSSQL에 접속하여서 데이터베이스에서 마우스 오른쪽 버튼을 누르고 새 데이터베이스를 클릭 합니다.

 2. 그리고 데이터베이스 이름을 입력하고 확인을 누르면 끝입니다. 가장 기본적으로 사용하기 알맞은 옵션으로 제작하기 때문에 사실 학습자라면 충분 합니다. 
그래도 한가지 꼭 알고 가면 좋은건 자동증가/최대크기 입니다. 제가 쓴 다른 글을 확인해보세요.

 3. 옵션을 이동해보면 다양한 옵션이 있습니다. 데이터베이스를 조금 특별하게 활용한다면 만질 수 있겠지만 
학습자라면 그대로 사용하는걸 추천 합니다.


 4. 가끔 SSMS를 이용한 데이터베이스를 조작하는걸 보고 게으르다. 너무 쉽다라는 분들도 계시는데요. 
마우스 3번 클릭으로 완성되는 데이터베이스를 보자니 학습의 의욕이 떨어진 분들은
아래 스크립트 SQL를 한번 보세요. 하나씩 뜯어보면 어려운건 없지만 이걸 모두 공부해서 달달 외울수 있는 체력이 있는 분들은 상관 없지만 더 필요한 곳을 학습하고 싶다면 UI로 데이터 베이스를 만들어도 좋습니다.


마무리


말은 좀 길었지만 쉬운건 맞습니다.


댓글을 달아 주세요


MSSQL 데이터베이스 생성시 용량 증가에 대한 부분


안녕하세요.
고코더 입니다.



 1. MSSQL에서 새로운 데이터베이스를 만들때 "64MB 단위로, 제한 없음" 이라 기본 옵션을 보셨을 것니다.
이 옵션은 데이터베이스 데이터 용량이 가득 찼을때 64MB 단위로 하드디스크를 확보 한다는 의미 입니다.
즉 매번 데이터의 양이 늘때마다 기록하는게 아니라 범위를 넓혀 놓는 방법입니다.

 2. 과거 버전에서는 %퍼센트 단위로 데이터 양을 자동증가로 설정하게도 하였는데요. 
요즘은 1TB급의 하드디스크 용량도 많으니 만약 10프로씩 증가시킨다면 1기가 용량을 넓히는 작업을 하기 때문에
데이터베이스가 급속하게 느려지거나 잠시 쓰지 못하는 경우가 생겨나기도 합니다.


 3. 실무에서 많이 사용하는 방법은 기본 옵션과 같이 60메가 내외로 자동증가를 설정합니다.
그리고 당연히 최대 파일 크기는 제한 없음으로 하는 경우가 대다수 입니다. 데이터 받는걸 중지하는게 아니라 가득차면 인프라를 넓혀야죠. 

 4. 학습자인데 SSD를 사용하는 분이라면 용량을 아끼기 위해 10MB 단위로 하는 것도 나쁘지 않습니다. 저는 이렇게 설정했습니다.



마무리

SSD의 용량 압박

댓글을 달아 주세요


형변환시 오류 발생하지 않게 하기 


안녕하세요.
고코더 입니다. 






TRY_CONVERT는 MSSQL이 주는 편리한 함수 입니다.
형변환시에 실수를 줄이기 위한 방법입니다. 

1
TRY_CONVERT(데이터타입, 변경대상)


 1. CONVERT는 데이터 형변환을 해주는 함수입니다. 프로시저를 만들게되면
많이 사용하게 되는 방법인데요. 대신 알파벳을 숫자로 변환하게 되면 당연히
오류가 납니다. 데이터형변환 대상이 잘못됐으니깐요. 
그런데 이 형변환 데이터가 잘못된 데이터가 들어면 오류가 나게 됩니다. 


 2. MSSQL은 이런 우릴 위해 TRY_CONVERT을 만들어 놓았습니다. 
형변환이 실패하면 오류가 아니라 null을 반환해주도록 말이죠. 잘못쓰면 더 미궁으로 빠지겠지만
잘만 사용하면 편리한 함수 입니다.

다만 오류를 안내는게 만사는 아닙니다. 


마무리


그래도 오류나면 혼나겠죠.

댓글을 달아 주세요


SSMS 최근 버전으로 upate 하기


안녕하세요.
고코더 입니다.



저는 개인으로 MSSQL 학습으로 사용하기에 최신버전이 나오면 냅다. 설치하고 봅니다.
언제나 MS 소프트웨어들은 업데이트의 가치가 있습니다.
SSMS도 마찮가지 입니다. 2017때 한참쓰다 요즘 다시 2019 쓰니 쓸만한게 많아졌습니다.
개발자라면 최신 기술을 빨리 만나는게 스펙이 될 수 있겠죠.

 1. SSMS에서 도구를 클릭하고 업데이트 확인을 클릭 합니다. 

 2. 그러면 아래와 같이 현재 버전과 최신버전을 나타내는 창이 있습니다. 업데이트 버튼을 누릅니다. 


 3. 그럼 최신 버전을 다운로드 가능한 URL로 이동이 됩니다. 자동으로 안받네요.
해당 페이지에서 최신버전을 다운로드가 가능합니다. 그리고 그걸 설치하시는 방법으로 업데이트가 완료 됩니다.



마무리


공짜는 무조건 최신버전으로

댓글을 달아 주세요