msSQL

복구 보류 중인 상태 확인하기SSMS 의 개체 탐색기에서도 바로 확인할 수 있지만, sys.databases 테이블에서도 데이터베이스의 상태를 확인할 수 있습니다. 복구 보류 중인 상태 원인1. 데이터베이스가 정상적으로 종료되지 않았습니다.데이터베이스가 종료되고 로그파일이 삭제될 때 COMMIT 되지 않은 활성화된 트랜잭션이 있을 수도 있습니다. 2. 로그 파일을 다른 경로로 이동하려고 했지만 이 과정에서 로그 파일이 손상되었습니다. 3. 메모리 공간 부족 또는 디스크 저장 공간으로 인해서 데이터베이스 복구를 시작할 수 없습니다. 복구 보류 중인 상태 해결하기해결책은 2가지가 있습니다. 해결책 1Northwind 데이터베이스를 복구하는 경우, 다음의 쿼리를 실행해 주세요.ALTER DATABASE Nor..
MSSQL - AdventureWorks 데이터베이스를 백업하기MSSQL 에서 제공하는 AdventureWorks 데이터베이스에 대해서 백업을 진행해보겠습니다.아래 단계에서는 많은 작업들을 추가할 수 있으나 사진으로는 최대한 간결하게 포현하였습니다. 1. AdventureWorks 데이터베이스 우클릭 - 태스크 - 백업으로 들어갑니다. 2. 백업 유형은 전체로, 백업할 위치를 설정한 후 확인을 눌러줍니다. - 데이터베이스 복구 모델이 단순 모델만 아니라면 트랜잭션 로그 백업도 할 수 있습니다. 트랜잭션 로그백업을 원하는 경우에는 백업 유형을 트랜잭션 로그로만 바꿔주세요. - 미디어 옵션에서 더 많은 설정을 할 수 있습니다. 여기서는 설명하지 않습니다. 3. 백업이 완료되었습니다. 4. 트랜잭션 로그도 2..
SQL Server 에서 권한에 관련하여 GRANT, REVOKE, DENY 구문을 지원합니다. 각 구문은 다음과 같은 특성을 지닙니다.GRANT 는 유저에 개체에 대한 권한을 허용DENY 는 유저에 개체에 대한 권한을 차단REVOKE 는 유저에 부여된 권한을 회수하는 GRANT 도 DENY 도 아닌 상태 GRANT 가 부여되지 않으면 권한에 대한 허용이 없다고 판단하고 작업을 할 수 없습니다.즉, GRANT 가 부여된 권한을 REVOKE 하면 유저는 해당 개체에 대해 작업을 할 수 없습니다. 그렇다면 REVOKE 와 DENY 의 차이점은 무엇일까? REVOKE 와 DENY 가 차이가 없을 경우SCHEMA1 에 대해서 SELECT 권한이 부여되었다고 가정합니다. 이 SCHEMA1 에 대해서 SELECT ..
SQL Server 는 정렬을 위한 수많은 데이터베이스 언어 셋을 지원하고 있습니다. SELECT * FROM sys.fn_helpcollations() 를 수행하면 지원하는 언어를 볼 수 있습니다.이 중에서 이번에는 Korean 으로 시작되는 정렬 문자열에 대해 알아보겠습니다. Korean_90/100/Wansung 로도 나눠지지만 저희는 Wansung 에 초점을 맞춰서 알아보겠습니다.Wansung 은 완성이란 뜻입니다. (사람의 이름이거나 그렇지 않습니다.ㅎㅎ) Korean_Wansung 의 언어 정렬SELECT name FROM sys.fn_helpcollations() WHERE NAME LIKE 'Korean_Wansung%' 위 쿼리로 검색하면 아래와 같은 값을 얻을 수 있습니다. * 로 쓰면..
다수의 데이터 파일과는 다르게 다수의 로그파일은 성능이익에 전혀 영향을 미치지 않습니다. 트랜잭션 로그파일은 시간순으로 순차적으로 작성되어야 하며,따라서 SQL Server는 리두 로그 파일에 대해 I/O 작업을 병렬처리 할 수 없습니다. 만약 두번째 로그 파일이 사용하게 되는 경우는 첫 번째 로그 파일이 가득 차서 더이상 사용할 수 없게 되는 경우를 나타낼 것입니다. 따라서 저는 아래와 같은 방법이 더 좋다고 생각합니다. 하나의 큰 로그 파일을 사용하자1. 서비스 오픈 전 테스트를 진행하여 로그파일이 어느 사이즈까지 증가하는지를 산정2. 산정한 사이즈 량보다 충분한 여유공간이 있는 RAID10 디스크를 준비3. 해당 디스크에 로그파일의 경로를 설정4. 주기적으로 로그 축소 작업을 진행 추가적으로 FIL..
먼저 쿼리 하나를 보겠습니다. CREATE DATABASE [SampleDB] ON PRIMARY -- Primary Group( NAME = 'SampleDB_01', -- Primary Group 의 파일1 FILENAME = 'C:\Data\SampleDB_01.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1MB ),( NAME = 'SampleDB_02', -- Primary Group 의 파일2 FILENAME = 'D:\Data\SampleDB_02.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1MB ), FILEGROUP [SECONDARY] -- Secondary Group( NAME = 'Sa..
오라클의 DESC오라클에서 DESC 를 하게 되면 해당 테이블의 컬럼, 컬럼크기, NullAble 등의 정보를 확인할 수 있습니다.DESC TABLE_NAME SQL Server 의 DESCSQL Server 는 DESC 를 지원하지 않습니다.대신 sp_columns 의 프로시저와 INFORMATION_SCHEMA.COLUMNS 테이블로 정보를 조회할 수 있습니다. EXEC SP_COLUMNS TABLE_NAME SELECT * FROM INFORMATION_SCHEMA WHERE TABLE_NAME = 'TABLE_NAME'
MSSQL 서버 확인하기@@SERVERNAME 으로 확인할 수 있습니다.현재 접속해있는 서버를 반환합니다.SELECT @@SERVERNAME MSSQL 인스턴스 확인하기@@SERVICENAME 으로 확인할 수 있습니다.현재 접속해 있는 인스턴스를 반환합니다.SELECT @@SERVICENAME MSSQL 데이터베이스 확인하기DB_NAME() 으로 확인할 수 있습니다.현재 접속해 있는 데이터베이스를 반환합니다.SELECT DB_NAME() 현재 접속한 서버 / 인스턴스 / 데이터베이스 확인SELECT @@SERVERNAME, @@SERVICENAME, DB_NAME()
ORACLE 에서 출력된 데이터로 테이블 생성하기ORACLE 에서는 CREATE TABLE AS SELECT * 문으로 테이블을 생성할 수 있습니다.* 대신 컬럼을 지정할 수도 있습니다.CREATE TABLE NEW_TABLE AS SELECT C1, C2 FROM OLD_TABLE ; SQL Server 에서 출력된 데이터로 테이블 생성하기SQL Server 에서는 SELECT * INFO FROM 문으로 테이블을 생성할 수 있습니다.* 대신 컬럼을 지정할 수도 있습니다.SELECT C1, C2 INTO NEW_TABLE FROM OLD_TABLE ; 새로 생성되는 테이블들은 기존의 제약사항을 가지고 있지 않습니다.
ANSI_NULLS 와 ANSI_WARNINGS 이란ANSI_NULLS 는 NULL과 함께 사용될 경우 = , != () 비교 연산자의 ISO 호환 동작을 지정합니다.ANSI_WARNIGNS 은 집계함수에 NULL 값이 있으면 경고 메세지가 생성됩니다. https://docs.microsoft.com/ko-kr/sql/t-sql/statements/set-ansi-nulls-transact-sql?view=sql-server-2017https://docs.microsoft.com/ko-kr/sql/t-sql/statements/set-ansi-warnings-transact-sql?view=sql-server-2017 오류 해결법수행할 쿼리 위에 ANSI_NULLS 와 ANSI_WARNIGNS 을 ON ..
꽁담
'msSQL' 태그의 글 목록 (4 Page)