이 블로그 검색

2011년 4월 20일 수요일

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  =
확장 저장 프로시저

임시테이블 존재여부 확인 후 삭제


테이블 존재여부 확인 후 삭제 

If Exists(Select Name From TempDB..SysObjects where name like '#TEMP_TABLE%' and type = 'u')
Begin  drop table #TEMP_TABLE End



2011년 4월 18일 월요일

0으로 나누기 오류로 인한 -1.#INF 값 표시하지 않기.



0으로 나누기 오류로 인해 그리드에 -1.#INF로 표시되는 데이터는
다음과 같이 처리한다.
EX) 매출수량에 0이 포함된 경우가 있을 경우.
IIF([Measures].[매출수량] = 0, Null,  [Measures].[매출금액]/[Measures].[매출수량])


2011년 4월 11일 월요일

Moving the tempdb


기본적으로 tempdb는 master의 위치와 동일한 곳에 생성되지만 퍼포먼스 향상을 위해 tempdb의 파일을 다른 물리드라이브로 변경시키기도한다. 변경사항은 서비스 재시작 후 적용된다.


-- 현재 tempdb파일 위치 확인
USE tempdb
EXEC sp_helpfile

-- 파일위치변경 
USE master
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:\MSSQL\Data\tempdb.mdf')
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:\MSSQL\Data\tempdb.ldf')



Restarting SQL Server , Analysis Services (Batch Script)



배치파일을 작성하여 SQL Server 및 Analysis Services를 재시작할 수 있다.
SQL Server Agent 에 Job으로 등록하여 사용가능.

ECHO OFF
NET STOP "SQL Server (MSSQLSERVER)" 
NET START "SQL Server (MSSQLSERVER)" 


NET STOP  "SQL Server Analysis Services (MSSQLSERVER)"
NET START  "SQL Server Analysis Services (MSSQLSERVER)"






The size specified for a binding was too small


Error : 
Warning 1 Errors in the back-end database access module. The size specified for a binding was too small, resulting in one or more column values being truncated.


해결 : 차원테이블과 팩트테이블간의 Key Column간의 데이터타입이 일치하도록 조정.

xp_cmdshell 을 사용한 패키지 실행


파일시스템 내의 패키지 실행
master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /REPORTING E '

실행시 변수를 할당하여 패키지 실행
master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /SET "\Package.Variables[User::사용자변수].Properties[Value]";변수값 /REPORTING E '

연결된 서버의 패키지 실행 
[연결된서버명].master..xp_cmdshell 'DTEXEC /FILE "C:\패키지.dtsx" /CHECKPOINTING OFF /SET "\Package.Variables[User::사용자변수].Properties[Value]";변수값 /REPORTING E '

서버상에 올린 패키지 실행
master..xp_cmdshell  'dtexec /DTS "\MSDB\패키지명" /SERVER 서버명 /DECRYPT 패키지암호 /CHECKPOINTING OFF  /REPORTING V '