본문 바로가기

DBMS/SQL Server

(95)
[SQL Server] 테이블명, 컬럼명 변경하기 테스트용 테이블을 생성하고 테이블명을 변경 테이블명 변경 : SP_RENAME '현재 테이블명', '변경할 테이블명' -- 테스트용 테이블 생성 CREATE TABLE TEST_RENAME ( COL1 INT , COL2 CHAR(5) ) -- 테이블명 변경 SP_RENAME 'TEST_RENAME', 'TEST_RE' 테이블명이 제대로 변경되었는지 확인 TEST_RENAME 테이블을 SELECT 하면 TEST_RE로 변경되었으므로 오류메시지가 발생한다. 변경된 TEST_RE 테이블을 SELECT 하면 정상적으로 결과가 출력된다. -- 테이블명 변경 확인 SELECT * FROM TEST_RENAME -- 테이블명 변경 확인 SELECT * FROM TEST_RE 컬럼명 변경 : SP_RENAME '테이..
[SQL Server] 특정 일자의 요일 구하기 특정 일자의 요일을 구하고 싶을 때 다음의 함수를 사용하면 된다. -- 한글로 요일 구하기 SELECT DATENAME (WEEKDAY, '20130730') -- 숫자로 요일 구하기 SELECT DATEPART (WEEKDAY, '20130730') 실행 결과를 확인해 보면 2013년 7월 30일은 화요일인 것과 숫자로는 3인 것을 알 수 있다. 여기서 주의할 점은 일요일이 1을 나타내고 월요일이 2 수요일이 3.... 토요일이 7을 나타낸다. 조금 응용해서 일요일에만 특정 데이터를 보여주고 싶을 때 다음과 같이 조건을 주면 된다. IF DATEPART(WEEKDAY, GETDATE()) = 1 BEGIN SELECT '일요일 입니다.' END ELSE BEGIN SELECT '일요일 아닌데...' E..
[SQL Server] 데이터, 로그 파일 사이즈 자동증가 확인 데이터베이스에서 파일 자동증가 옵션은 설치시 기본으로 적용되어 있는 기능으로 디스크에 저장공간이 부족하게 되면 자동증가 크기만큼 크기를 증가시켜 여유공간을 확보하게 된다. 자동증가시 부하로 인해 서비스중인 시간에 자동증가가 발생하지 않도록 미리 여유공간을 확보해야 한다. 그렇다고 자동증가 옵션을 설정하지 않는다면 데이터 파일의 저장공간이 부족한 경우 더 이상 데이터를 저장할 수 없고 이로 인해 심각한 장애가 발생할 가능성이 있다. 데이터, 로그 파일이 언제 자동증가 했고, 자동증가시 걸린 시간, 크기 등을 확인하는 방법은 다음과 같다. [보고서] ▶ [표준 보고서] ▶ [디스크 사용] 데이터, 로그 파일이 자동증가로 증가했는지 확인할 수 있다. 이벤트, 논리적 파일 이름, 시작시간, 기간, 변경된 크기에..
[SQL Server] 테이블 스크립팅시 인덱스 포함하기 기본적으로 테이블을 스크립팅 하면 PK나 FK를 제외한 인덱스는 포함되지 않고 스크립팅 된다. 인덱스를 포함해서 스크립팅 하려면 도구 - 옵션 - SQL Server 개체 탐색기 - 스크립팅에서 인덱스 스크립팅을 True로 바꿔주면 된다.
[SQL Server] MERGE 문 SQL Server 2008에서 제공하는 MERGE 문은 하나의 쿼리 문으로 INSERT, UPDATE, DELETE 작업을 할 수 있다. 일반적으로 두 개의 테이블을 비교해서 한쪽 테이블에 없으면 INSERT, 있으면 UPDATE하는 형태로 많이 사용한다. MERGE 문은 UPDATE + INSERT의 의미로 UPSERT라고 부르기도 한다. USE TestDB GO -- 테스트를 위해 테이블 생성 CREATE TABLE dbo.TestTbl ( COL1 INT IDENTITY(1,1) NOT NULL , COL2 INT NOT NULL , COL3 CHAR(6) ) GO -- 데이터 삽입 INSERT INTO dbo.TestTbl (COL2, COL3) VALUES (1, '한효주'), (2, '아이유..
[SQL Server] IntelliSense 기능 Visual Studio에서는 제공되었던 IntelliSense 기능이 SQL Server 2008부터 제공된다.이는 글자의 일부만 입력해도 그와 관련되는 글자들이 나타나는 것이다.잘 활용하면 입력도 빨라지고 오타도 많이 줄어드는 장점이 있다. IntelliSense 기능에는 다음과 같은 기능들이 있다. use 문을 입력할 때 데이터베이스 목록이 자동으로 표시되며 원하는 데이터베이스를 눌러 선택할 수 있다. 변수를 선언하고 값을 지정하는 SET문 다음에 @를 입력하면 자동으로 변수 목록이 나타나고 선택할 수 있다. 선언하지 않은 변수 사용시 빨간색 줄이 그어지면서 오류를 인식시켜준다. 함수를 사용할 때 함수명을 입력하고 ( 를 입력하면 필요한 매개변수의 정보가 표시된다. FROM 절에 Sales 스키마를..
[SQL Server] SQL Server 2008의 새로운 날짜/시간 데이터 형식 SQL Server 2008에서는 아래와 같은 새로운 데이터 형식을 제공하고 있다. 날짜/시간 데이터 형식 : DATE, TIME, DATETIME2, DATETIMEOFFSET 계층적 데이터 형식 : HIERARCHYID 공간 데이터 형식 : GEOGRAPHY, GEOMETRY 이 데이터 형식 중 날짜/시간 데이터 형식에 대하여 살펴보겠다. DATE 데이터 형식은 시간 구성 요소 없이 날짜를 저장한다. 데이터의 범위는 00011년 1월 1월부터 9999년 12월 31일까지이다. TIME 데이터 형식은 날짜 구성 요소 없이 시간을 저장한다. 이 데이터 형식은 24시간 형식에 기반을 두므로 지원되는 범위는 00:00:00.0000000부터 23:59:59.9999999까지이다. DATETIME2 데이터 형..
[SQL Server] 스파스 열 (Sparse Column) 스파스 열(Sparse Column)은 SQL Server 2008의 새로운 기능으로 'NULL 값에 대해 최적화된 저장소가 있는 일반 열'로 정의할 수 있다. NULL 값이 많이 들어갈 것으로 예상되는 열을 스파스 열로 지정해 놓을 경우 많은 공간 절약 효과를 볼 수 있다. 하지만 NULL 값이 별로 없는 열이라면 오히려 그 크기가 더 필요해진다. 즉, 스파스 열로 지정된 열에 NULL 값을 입력하면 지정된 데이터 크기보다 적게 공간을 차지하지만, 반대로 실제 값이 입력되면 오히려 공간을 더 차지하게 된다. SQL Server 2008에서 한 테이블 당 최대 1,024개의 컬럼을 생성할 수 있다. 하지만 스파스 열은 여기에 포함되지 않고, 스파스 열이 생성할 수 있는 최대 개수는 100,000개이다. ..