이 블로그 검색

2014년 5월 1일 목요일

SSMS 결과창 보이기/숨기기

이전 버전까지는 잘 사용하던 쿼리결과창 보이기 숨기기 (Ctrl+R)가 SQL Server 2012버전의 SSMS 부터는

따로 키 지정을 해줘야한다.


도구(T) > 사용자 지정(C) > 키보드(K)
창.결과창표시 선택 > 새 바로 가기 사용 위치(N) : "SQL 쿼리 편집기"
바로 가기 키 누르기(P) : "Ctrl+R"
할당(S) > 확인

 

Tools > Customize > Keyboard >
"Window.ShowResultsPane" > Use new shortcut in : "SQL Query Editor"
Press shortcut keys : "Ctrl+R"
Assign > OK

2014년 4월 24일 목요일

[ERWin] Revers Engineer to SQL Server 2005

증상

ERWin에서 Reverse Engineer를 하기위해 SQL Server 2005에 접속시도중

DAX000: Unable to locate client connectivity software sqlncli.dll(Native ODBC Connectivity)

위와 같은 에러를 내면서 접속조차 되지 않음.


해결
Client 버전 문제이겠구나.. 생각하고 SQL Server 2005 Client 설치, 그래도 동일한 오류.
MS Download Center에서 SQL Server 2005용 기능팩을 다운로드 할 수있고 이 기능팩 설치후 정상 동작.

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyId=50b97994-8453-4998-8226-fa42ec403d17&DisplayLang=ko







증상2.
접속은 되는데.. 테이블을 긁어오는 도중 ERWin이 뻗어버리는 증상이 발견.

해결.
정확히 어떤 옵션 때문에 뻗어버리는지는 찾지 못했지만 (일일이 체크하며 찾기 귀찮..)
Reverse Engineer시 기본적으로 옵션이 모두 체크되어있는데 단순히 테이블만 긁어오는 용도라면 다른 옵션을 모두 제거하고 테이블만 선택하면 에러없이 정상적으로 Reverse Engineer가 완료됨.



2012년 1월 14일 토요일

SSRS Divine by zero Error


SSRS에서 0으로 나누기 에러

아래와 같은 식에서 분모가 0이 될 경우 에러를 낸다.
=sum(Fields!분자.Value)/sum(Fields!분모.Value)

에러를 내지 않기위한 방법으로 아래의 IIF식은 문제가 없어보이지만 실제로
정상적으로 동작하지 않는다.
=iif(sum(Fields!분모.Value)=0,0,sum(Fields!분자.Value)/sum(Fields!분모.Value))

아래와 같이 분자,분모에 모두 IIF식으로 감싸주면 정상 작동한다.
=iif(sum(Fields!분모.Value)=0,0,sum(Fields!분자.Value)/iif(sum(Fields!분모.Value)=0,1,sum(Fields!분모.Value))


2011년 12월 14일 수요일

sysobjects 의 xtype

 C  = CHECK 제약 조건
 D  = 기본 값 또는 DEFAULT 제약조건
 F = FOREIGN KEY 제약조건
 L  = 로그
FN = 스칼라 함수
 P  = 저장 프로시저
PK = PRIMARY KEY 제약 조건(유형은 K)
RF = 복제필터 저장 프로시저
 S  = 시스템 테이블
TF = 테이블 함수
TR = 트리거
 U  = 사용자 테이블
UQ = UNIQUE 제약 조건(유형은 K)
 V  = 뷰
 X  = 확장 저장 프로시저

Analysis Services Linked Server error (The peer prematurely closed the connection)



분석서버 연결된 서버 생성 후 에러 메세지
연결된 서버 ""의 OLE DB 공급자 "MSOLAP" 이(가) 메시지 "피어에서 연결을 중간에 닫았습니다" 을(를) 반환했습니다. (Microsoft SQL Server, Error: 7303)

메세지 창
영문메세지
An exception occurred while executing a Transact-SQL statement or batch.
(Microsoft.SqlServer.Connectionlnfo)
Cannot initialize the data source object of OLE DB provider MSOLAP’ For linked server " ",
OLE DB provider “MSOLAP” For linked server “ ” returned message “An error was encountered in the transport layer.”.
OLE DB provider “MSOLAP” for linked server “ ’ returned message “The peer prematurely closed the connection.”. (Microsoft SQL Server, Error: 7303)

 EXEC MASTER.DBO.SP_ADDLINKEDSERVER
  
@server = N'LinkedServerName',
  
@srvproduct=N'MSOLAP',
  
@provider=N'MSOLAP',
  
@datasrc=N'domainName',
  
@catalog=N'catalogName'
EXEC MASTER.DBO.SP_ADDLINKEDSRVLOGIN
  
@rmtsrvname=N'LinkedServerName',
  
@useself=N'False',
  
@locallogin=NULL,
  
@rmtuser=N'domainName\administrator',
  
@rmtpassword='password'  



2011년 12월 13일 화요일

Search for Stored Procedure Containing Text

특정 텍스트가 포함된 프로시져 찾기

SELECT DISTINCT so.name
FROM syscomments sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.TEXT LIKE '%keyWord%'

get a list of table & field from stored procedure

프로시저에 사용된 테이블, 컬럼 리스트 출력



create procedure sp_sp_tbl_col_list
as 

select  
         bb.name           as spName
,        cc.name           as tableName
,        dd.COLUMN_NAME    as columnName
,        dd.DATA_TYPE      as dataType
,        dd.IS_NULLABLE    as isNullable
,        ISNULL(
                  ISNULL(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)
                            ,'( '+CONVERT(VARCHAR,NUMERIC_PRECISION)+', '+CONVERT(VARCHAR,NUMERIC_SCALE)+' )')
                  , DATA_TYPE )     as dataLenth
from sysdepends                    aa
inner join sysobjects      bb
on aa.id = bb.id
inner join sysobjects      cc
on aa.depid = cc.id
left outer join INFORMATION_SCHEMA.COLUMNS dd
on aa.depnumber = dd.ORDINAL_POSITION
where bb.xtype = 'P'
and cc.name = dd.TABLE_NAME
order by 1,2,3