'MS-SQL'에 해당되는 글 15건

  1. 2010.08.03 MS SQL DATETIME 형식 변환
  2. 2010.07.20 MS SQL SUBSTRING
  3. 2010.06.08 MS SQL 데이터베이스 백업 및 복원 방법
  4. 2010.05.03 MS SQL 2005 데이터 타입
  5. 2010.04.20 MS SQL Identity 초기화
  6. 2010.04.16 MS SQL 컬럼명 변경 (1)
  7. 2010.04.13 MS SQL 컬럼 기본값 설정
2010.08.03 15:55

MS SQL DATETIME 형식 변환

0 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0)
1 02/22/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1)
2 06.02.22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2)
3 22/02/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 3)
4 22.02.06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 4)
5 22-02-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 5)
6 22 Feb 06 CONVERT(CHAR(9), CURRENT_TIMESTAMP, 6)
7 Feb 22, 06 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 7)
8 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 8)
9 Feb 22 2006 4:26:08:020PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 9)
10 02-22-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 10)
11 06/02/22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 11)
12 060222 CONVERT(CHAR(6), CURRENT_TIMESTAMP, 12)
13 22 Feb 2006 16:26:08:020 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 13)
14 16:26:08:037 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 14)
20 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20)
21 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 21)
22 02/22/06 4:26:08 PM CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22)
23 2006-02-22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23)
24 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 24)
25 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 25)
100 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 100)
101 02/22/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 101)
102 2006.02.22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)
103 22/02/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 103)
104 22.02.2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 104)
105 22-02-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 105)
106 22 Feb 2006 CONVERT(CHAR(11), CURRENT_TIMESTAMP, 106)
107 Feb 22, 2006 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 107)
108 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 108)
109 Feb 22 2006 4:26:08:067PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 109)
110 02-22-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 110)
111 2006/02/22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 111)
112 20060222 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112)
113 22 Feb 2006 16:26:08:067 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 113)
114 16:26:08:067 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114)
120 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)
121 2006-02-22 16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 121)
126 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 126)
127 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 127)
130 24 ???? 1427 4:26:08:080PM CONVERT(CHAR(32), CURRENT_TIMESTAMP, 130)
131 24/01/1427 4:26:08:080PM CONVERT(CHAR(25), CURRENT_TIMESTAMP, 131)


[출처]
[MS-SQL] DATETIME 변환
Trackback 0 Comment 0
2010.07.20 16:03

MS SQL SUBSTRING

MS SQL의 SUBSTRING은 Java의 String.subString이나 C#의 String.SubString과 동일한 기능을 수행한다.

사용법은

SUBSTRING(target_string, start_index, length)

단, 여기서 주의할 점은 start_index는 0이 아닌 1이상이 되어야 한다는 것!!

즉, MS SQL에서 문자열의 시작 인덱스는 0이 아닌 1이다.
Trackback 0 Comment 0
2010.06.08 17:04

MS SQL 데이터베이스 백업 및 복원 방법

-05백업
백업시 참고 사항
- 기본적으로 model, northwind, Pubs, tempdb는 백업하지 않아도 됨.
- master테이블은 권한과 같은 정보들이 있고, msdb테이블은 스케쥴이나 패키지 작업이 저장되어 있습니다. 필요한 데이터일 경우에만 백업하면 됩니다.


전체 백업
- 전체 백업은 데이터의 변경 유무에 관여하지 않고 전체 데이터의 복사본을 만드는 백업 방식입니다.
- 전체 백업은 복구 과정이 다른 백업 방식보다 간편하고 다른 백업 방식보다 복구 시간이 적게 소요됩니다.

쿼리
Backup Database DB이름
To Disk='경로\파일명.bak'


차등 백업
- 차등 백업은 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식입니다. 이는 증분 백업과는 다르게 전체 백업 이후 파일이 변경될 경우 다음 전체 백업까지 계속 백업하는 방식입니다.
- 전체 백업 이미지와 가장 최근의 차등 이미지만 복구하면 되기 때문에 복구 시점에 따라 다르긴 하지만 대개 증분 백업보다 복구 속도가 빠릅니다.
- 파일이 변경될 때마다 파일 크기가 증가하게 되며, 다음 전체 백업 때까지 파일 크기가 점점 커지게 된다는 단점이 있습니다.

쿼리
Backup Database DB이름
To Disk='경로\파일명.bak' With Differential

로그 백업
- 로그 백업은, 데이터베이스를 백업 받는게 아니고 그동안 발생했던 트랜잭션 로그(지금까지 이루어졌던 모든 동작들의 로그)를 백업 받는 방법입니다.
- 전체 백업시에도 로그 백업은 삭제 되지 않습니다. 그렇기 때문에 전체 백업을 하기 전에 로그 백업을 모두 삭제하고 전체 백업을 하는 것이 좋습니다.
- 로그 백업은 시간 단위로 복원이 가능하다는 장점이있습니다. (부분 롤백 가능)
- 트랜잭션 로그 백업을 받으면 백업받은 로그가 제거되어 로그 파일의 사이즈를 줄여 줄 수 있게 됩니다. (증분 백업의 개념으로 사용 가능)

쿼리
Backup Log DB이름 To Disk = '경로\파일명.bak' GO

백업시 옵션
- Init (Overwrite) : 덮어 쓰기 모드
Backup Log DB이름 To Disk = '경로\파일명.bak'
With Init

- NoInit (Append) : 뒤에 이어 붙이는 모드. (Default)
Backup Log DB이름 To Disk = '경로\파일명.bak'
With NoInit


- No_Truncate : 로그 백업을 하고나서, 로그를 지우지 말라는 뜻. (데이터 베이스가 비정상적인 상태에서도 가능)
Backup Log DB이름 To Disk = '경로\파일명.bak'
With No_Truncate GO -- 로그 백업후 로그를 지우지 말라는 의미.


백업 받은 파일 검사
한 파일에 여러번 백업할 수도 있고, 한 파일당 한번 백업할 수도 있다.
백업 받은 파일에 백업이 정상적으로 이루어졌는지 등의 정보를 확인하려면 아래와 같은 쿼리로 확인하면 된다.

- 백업 디바이스 헤더 검사
Restore HeaderOnly From Disk = '경로\파일명.bak' GO

- 백업시 파일 리스트 검사
Restore FileListOnly From Disk = '경로\파일명.bak' GO

- 백업 미디어 정보 검사
Restore LabelOnly From Disk = '경로\파일명.bak' GO

- 백업 안정성 검사
Restore VerifyOnly From Disk = '경로\파일명.bak' GO


복원
- 백업한 데이터를 복구하는 것을 말한다.

쿼리
Restore Database DB이름 From Disk='경로\파일명.bak'

복원시 옵션
1) 일반 옵션
- File : 한 파일 내에 여러개의 백업 존재 시, 백업 디바이스 헤더 검사에서의 Position 값을 넘겨주면 해당 백업만 복원합니다.
Restore Database DB이름 From Disk='경로\파일명.bak'
With File = 3 -- 해당 파일의 3번 Position의 백업만 복원

- DBO_ONLY : 복원 이후 권한을 db_owner 에게만 준다
Restore Database DB이름 From Disk='경로\파일명.bak'
With Dbo_Only

2) 복구 이후 상태 설정용 옵션
- Recovery : 복원이 끝났으니 사용하게 하라는 의미.
Restore Database DB이름 From Disk='경로\파일명.bak'
With Recovery -- 복원을 끝내고 사용할 수 있도록 설정

- NoRecovery : 추가적인 복구 작업이 있을 것이기에 사용하게 하지 말라는 의미.
Restore Database DB이름 From Disk='경로\파일명.bak'
With Recovery -- 복원을 끝내도 사용은 할 수 없게 설정

- Standby : 추가적인 복구가 있을 예정이지만, 사용은 하고 싶기에 읽기 전용 상태로 설정.
Restore Database DB이름 From Disk='경로\파일명.bak'
With Standby -- 복원을 끝내고 읽기 전용으로 설정

 

3) 범위 지정 복구 관련 옵션
- StopAt : 복원 시점을 시간으로 지정
Restore Database DB이름 From Disk='경로\파일명.bak'
StopAt = '2001-11-19 01:09' --2001년 11월 19일 1시 9분 데이터까지 복원

4) 마크 이용 복구 관련 옵션
- 트랜잭션에 마크 설정
Begin Tran myTran With Mark --트랜잭션에 마크를 설정
-- 여러가지 처리
Commit

- StopAtMark : 지정한 마크의 트랜잭션까지 복원
Restore Database DB이름 From Disk='경로\파일명.bak'
StopAtMark = 'myTran' -- myTran 이라는 Transaction 까지 복원

- StopBeforeMark : 해당 트랜잭션 직전(해당 트랜잭션을 포함하지 않음.) 에서 복원을 중지한다.
Restore Database DB이름 From Disk='경로\파일명.bak'
StopBeforeMark = 'myTran' --myTran 이전 까지의 Transaction 까지 복원

- After : 날짜 지정 기능 (StopAtMark나, StopAtBeforeMark 과 함께 사용 가능)
Restore Database DB이름 From Disk='경로\파일명.bak'
StopAtMark = 'myTran'
AFTER '2001-11-19 01:09' --2001년 11월 19일 1시 9분 데이터까지 복원


5) 현재 상태를 파일로 저장시 옵션
- MOVE A TO B : 복원시 현재 상태를 파일로 저장할 파일 경로 재정의 명령
Restore Database DB이름 From Disk='경로\파일명.bak'
With Move '논리 파일 이름' To '경로\파일명.mdf' -- 해당 논리 파일을 지정한 곳으로 옮겨라

- Replace : 복원시 현재 상태를 저장할 때 같은 파일 존재시 덮어 써라. (Move 명령과 함께 옵션 지정 가능)
Restore Database DB이름 From Disk='경로\파일명.bak'
With Replace-- 파일명.bak이 이미 있을 경우 덮어 쓰게 설정


복구 모델
1) 전체 복구 모델 (FULL)
- 데이터 백업과 로그 백업을 사용하여, 손실 없이 복구하는 모델.
- 시간 지정 복구가 가능하다.
- 전체, 차등, 로그, 파일 백업을 할 수 있음.

2) 대량 로그 복구 모델 (Bulk_Logged)
- 최소의 로그와 데이터 페이지를 저장하고 복구하는 모델.
- 지정된 시점까지의 복구(Stopat 옵션)는 허락 안된다.
- 전체, 차등, 로그, 파일 백업을 할 수 있음.

3) 단순 모델 (Simple)
- 로그를 가장 적게 사용한다. trunc.log on chkpt. 데이터 베이스 옵션과 동일.
- 로그를 주기적으로 비우기때문에 로그가 가득 차지 않는다.
- 지정된 시점까지의 복구(Stopat 옵션)는 허락 안된다.
- 전체, 차등 백업만 할 수 있음.

[출처] MS-SQL 백업

Trackback 0 Comment 0
2010.05.03 09:50

MS SQL 2005 데이터 타입

정확한 수치
종류 최소 최대
bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807
int -2,147,483,648 2,147,483,647
smallint -32,768 32,767
tinyint 0 255
bit 0 1
decimal -10^38 +1 10^38 –1
numeric -10^38 +1 10^38 –1
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
smallmoney -214,748.3648 +214,748.3647


근사치
종류 최소 최대
float -1.79E + 308 1.79E + 308
real -3.40E + 38 3.40E + 38


날짜 및 시간
종류 최소 최대
datetime (정확도 3.33 밀리초) 1753년 1월 1일 9999년 12월 31일
smalldatetime (정확도 1분) 1900년 1월 1일 2079년 1월 6일


문자열
종류 설명
char 8000 바이트 이하 고정 길이 비유니코드 문자 데이터
varchar 8000 바이트 이하 가변 길이 비유니코드 문자 데이터
varchar(max) 8000 바이트 이하 가변 길이 비유니코드 문자 데이터.
8000바이트를 초과할경우 max를 사용(max의 최대크기는 2^31-1(SQL Server 2005 only).
text 가변 길이 비 유니코드 문자 데이터(최대크기 2,147,483,647 바이트)


유니코드 문자열
종류 설명
nchar 4000 바이트 이하 고정 길이 유니코드 문자 데이터
nvarchar 4000 바이트 이하 가변 길이 유니코드 문자 데이터
nvarchar(max) 4000 바이트 이하 가변 길이 유니코드 문자 데이터
4000바이트를 초과할경우 max를 사용(max의 최대크기는 2^31-1(SQL Server 2005 only)
ntext 가변 길이 유니코드 문자데이터(최대 크기 1,073,741,823 바이트)


이진 문자열
종류 설명
binary 8000 바이트 이하 고정 길이 이진 데이터
varbinary 8000 바이트 이하 가변 길이 이진 데이터
varbinary(max) 8000 바이트 이하 고정 길이 이진 데이터
8000바이트를 초과할경우 max를 사용(max의 최대크기는 2^31-1(SQL Server 2005 only)
image 가변 길이 이진데이터(최대 크기 2,147,483,647 바이트)


기타 데이터 타입
종류 설명
sql_variant text, ntext, image, timestamp를 제외한, 여러 가지 데이터 형식의 값을 저장
timestamp 데이터베이스 내에서 자동으로 생성된 고유 이진 숫자 표시(MySQL이랑 헷갈리기 쉬울듯)
uniqueidentifier 16바이트 GUID
xml XML 데이터.
xml 유형의 변수 또는 열에 xml 항목 저장 가능 (SQL Server 2005 only).
cursor 커서에 대한 참조가 들어 있는 변수 또는 저장 프로시저 OUTPUT 매개 변수의 데이터 형식
table 나중에 처리하기 위해 결과 집합을 저장할 수 있는 특별한 데이터 형식

[출처] MSSQL 2005 데이터 타입

Trackback 0 Comment 0
2010.04.20 10:52

MS SQL Identity 초기화

DBCC CHECKIDENT ('table_name', RESEED, 0)

Trackback 0 Comment 0
2010.04.16 18:27

MS SQL 컬럼명 변경

테이블 컬럼명 변경에서 오라클에는 RENAME 키워드가 있다면 MS SQL은 sp_rename이라는 프로지저가 있다.

사용법:

sp_rename 'table_name.old_column_name', 'new_column_name
Trackback 0 Comment 1
2010.04.13 16:12

MS SQL 컬럼 기본값 설정

alter table table_name add default default_value for column_name

예) alter table OP_SEC_MAP add default getdate() for publish_datetime
Trackback 0 Comment 0