RTM (no SP)SP1SP2SP3SP4
↓ SQL Server 2016
     codename ?
CTP2.2



↓ SQL Server 2014
     codename Hekaton SQL14
12.0.2000.8 12.0.4100.1
or 12.1.4100.1
     
↓ SQL Server 2012
     codename Denali
11.0.2100.60 11.0.3000.0
or 11.1.3000.0
11.0.5058.0
or 11.2.5058.0
   
↓ SQL Server 2008 R2
     codename Kilimanjaro
10.50.1600.1 10.50.2500.0
or 10.51.2500.0
10.50.4000.0
or 10.52.4000.0
10.50.6000.34
or 10.53.6000.34
 
↓ SQL Server 2008
     codename Katmai
10.0.1600.22 10.0.2531.0
or 10.1.2531.0
10.0.4000.0
or 10.2.4000.0
10.0.5500.0
or 10.3.5500.0
10.0.6000.29
or 10.4.6000.29
↓ SQL Server 2005
     codename Yukon
9.0.1399.06 9.0.2047 9.0.3042 9.0.4035 9.0.5000
↓ SQL Server 2000
     codename Shiloh
8.0.194 8.0.384 8.0.532 8.0.760 8.0.2039
↓ SQL Server 7.0
     codename Sphinx
7.0.623 7.0.699 7.0.842 7.0.961 7.0.1063




출처 : http://sqlserverbuilds.blogspot.com/





Posted by 하이안
,

1. 메뉴 - 쿼리 - 쿼리옵션 실행


2. 키보드의 한/영 전환을 영문으로 변경


3. 쿼리옵션 창의 확인 버튼 클릭


4. OK






Posted by 하이안
,

sqlservr.exe -c -m -s [Instance Name]

-c : Service
-m : Single User Mode
-s Specify Server Name



Posted by 하이안
,

exec sp_change_users_login 'UPDATE_ONE', 'user_name', 'login_name'


Posted by 하이안
,

SET XACT_ABORT ON

MS-SQL 2011. 7. 13. 13:53
SQL Server에서는 begin tran을 걸고 DML 작업 수행 다 하고 commit을 해도
중간에 DML문 하나가 오류가 나면 오류난 채로 나머지가 잘 수행되고 끝나버림 (-_-;)

begin tran 실행 전에 SET XACT_ABORT ON 을 넣어주면 중간에 오류나면 전체 rollback.

세션 단위 말고 서버 전체에 적용하게 할 방법이 없는지 찾는 중...





 
Posted by 하이안
,
상황
SQL Server 2008 (64-bit) 에 Oracle 11g 클라이언트 설치 후 OraOLEDB.Oracle 공급자를 이용하여 Linked Server 생성
select 쿼리를 하는데 7347 오류 발생 ("예상 데이터 길이와 일치하지 않는 데이터를 반환했습니다")
Oracle 테이블의 컬럼형식은 NCHAR

조치
1. to_char 함수 이용
2. substr로 컬럼 길이를 정확히 잘라서 가져옴




Posted by 하이안
,
동적 관리 뷰 (Dynamic Management Views)
동적 관리 뷰 및 함수는 서버 인스턴스 상태 모니터링, 문제 진단 및 성능 튜닝에 사용할 수 있는 서버 상태 정보를 반환합니다.



■ sys.dm_exec_requests
SQL Server에서 실행 중인 각 요청에 대한 정보를 반환합니다.


■ sys.dm_os_waiting_tasks
특정 리소스에서 대기 중인 태스크의 대기 큐에 대한 정보를 반환합니다.


■ sys.dm_os_wait_stats
실행 중인 스레드로 인해 발생한 모든 대기에 대한 정보를 반환합니다. 이 집계 뷰를 사용하여 SQL Server와 관련된 성능 문제뿐 아니라 특정 쿼리 및 일괄 처리와 관련된 성능 문제도 진단할 수 있습니다.


■ sys.dm_os_latch_stats
클래스별로 구성된 모든 래치 대기에 대한 정보를 반환합니다.


■ sys.dm_io_virtual_file_stats
데이터 및 로그 파일에 대한 I/O 통계를 반환합니다.


■ sys.dm_io_pending_io_requests
SQL Server에서 보류 중인 각 I/O 요청에 대해 행을 반환합니다.




※ BOL에서 DMV로 검색하면 나머지 동적 관리 뷰 및 함수에 대해 알 수 있음.


Posted by 하이안
,
with x (deptno, cnt, list, empno, len)
as (
    select deptno
        , count(*) over (partition by deptno)
        , cast(ename as varchar(100))
        , empno
        , 1
    from emp

    union all

    select x.deptno, x.cnt, x.list ',' e.ename, e.empno, x.len+1
    from emp e, x --> recursive call
    where e.deptno = x.deptno and e.empno > x. empno
)

select deptno,list
from x
where len = cnt ;







Posted by 하이안
,

1. 메일계정 생성
    ① Microsoft SQL Server Management Studio 실행 후 관리 -> 데이터베이스 메일 선택 후 오른쪽 클릭
    ② 데이터베이스 메일 구성 실행
    ③ 데이터베이스 메일 계정 및 프로필 관리 선택 후 새 계정 만들기
    ④ 계정 이름, SMTP 설정 (메일주소, 메일서버), SMTP 인증 정보 입력 (예: 기본인증 선택 후 사용자 이름, 암호 입력)
         - 여기 입력한 메일서버를 통해서 메일을 발송하는 것임


2. 프로필 생성
    ① 위의 ①~② 실행
    ② 맨 위의 다음 태스크를 수행하여 데이터베이스 메일 설치 선택
    ③ 프로필 이름 입력하고 1에서 만든 메일계정을 추가
    ④ 공개(Public) 프로필 또는 개인(Private) 프로필 선택
         - 공개 프로필로 지정해 놓으면 SQL 서버의 모든 사용자들이 이 프로필을 이용하여 메일을 발송할 수 있음


3. SQL Server 에이전트 셋팅
    ① Microsoft SQL Server Management Studio 실행 후 SQL Server 에이전트 선택하고 오른쪽 클릭하여 속성창 띄움
    ② 경고 시스템 선택
    ③ 메일세션에서 메일 프로필 설정을 체크하고 2에서 만든 프로필을 지정
    ④ 확인 후 SQL Server 에이전트 서비스 재시작 (SQL Server 구성 관리자에서 서비스 재시작하면 됨)


4. 운영자 등록
    ① SQL Server 에이전트에서 운영자 추가
    ② 이름, 전자메일 주소 등록


5. 테스트
    ① use msdb
    ② exec sp_notify_operator
            @profile_name = '프로필 이름',
            @name = '운영자이름',
            @subject = '메일 제목',
            @body = '메일 내용'

    예) exec sp_notify_operator @profile_name='공개프로필',
            @name='관리자',
            @subject='Test Notification',
            @body='This is a test of notification via e-mail.'








Posted by 하이안
,
use [DB]
exec sp_changedbowner [account]



예)
use TEST
exec sp_changedbowner 'tester'






Posted by 하이안
,