반응형

WorkaHolic 242

테이블에서 중복 행을 제거하는 방법

Microsoft SQL Server 테이블에는 중복 행이나 고유하지 않은 기본 키가 없어야 합니다. 본 문서에서는 기본 키를 간략히 "키" 또는 "PK"로 지칭하기도 합니다. 그렇다고 해서 "키" 또는 "PK"가 반드시 "기본 키"를 나타내는 것은 아닙니다. 중복 PK는 엔티티 무결성을 위반하는 것이며 관계형 시스템에서는 허용되지 않습니다. SQL Server에는 엔티티 무결성을 유지하기 위한 인덱스, UNIQUE 제약 조건, PRIMARY KEY 제약 조건, 트리거 등의 다양한 메커니즘이 포함되어 있습니다. 그럼에도 불구하고 중복된 기본 키가 발생하는 예외적 경우가 있습니다. 이런 경우에는 중복된 기본 키를 제거해야 합니다. 중복 PK가 SQL Server 외부의 비관계형 데이터에 존재하고 PK 고유..

WorkaHolic 2010.04.08

대소문자 구분하기?

sqler에서 가져왔습니다... col1이라는 대소문자 안가리는 컬럼하고, col2라는 대소문자 구분하는 컬럼을 가진 테이블 caseTest를 만드는 CREATE 문입니다. CREATE TABLE caseTest ( col1 varchar(12) COLLATE Korean_Wansung_CI_AS , col2 varchar(10) COLLATE Korean_Wansung_CS_AS ); COLLATE Korean_Wansung_CS_AS --> 대소문자 구분 COLLATE Korean_Wansung_CI_AS --> 대소문자 구분 안함 여기서 CS는 Case Sensitive CI는 Case Insensitive 일껍니다. 그리고 대소문자 구분시키게 col1을 바꾸고자 할때, 사용할 수 있는 문장은 담과..

WorkaHolic 2010.04.08

상관쿼리 - 순위 구하기

라디오스님 /* 작성 : 김진와 일자 : 2003 .07 .11 내용 : 순위구하기 및 최고,최소값 출력 예제 */ USE TEST GO -- 테이블 생성 CREATE TABLE ST_LEVEL ( S_NO smallint IDENTITY (1, 1) NOT NULL , S_NAME varchar(10) NOT NULL , S_POINT float NULL , S_RANK smallint NULL ) ON [PRIMARY] GO -- 기본키 지정 ALTER TABLE ST_LEVEL WITH NOCHECK ADD CONSTRAINT PK_ST_LEVEL PRIMARY KEY CLUSTERED ( S_NO ) ON [PRIMARY] GO -- 데이타 입력 INSERT INTO ST_LEVEL (S_NAME..

WorkaHolic 2010.04.08

TOP N 구문과 SET ROWCOUNT N

Q. TOP N 구문을 사용하는 것이 SET ROWCOUNT N을 사용하는 것보다 쿼리에서 일정 개수의 행을 반환하는 속도가 더 빠릅니까? A. 적절한 인덱스를 사용하면 TOP N 구문과 SET ROWCOUNT N 문 모두 빠릅니다. 그러나 힙에서 정렬하지 않고 입력할 경우 TOP N이 더 빠릅니다. 입력한 사항이 정렬되지 않으면 TOP N 연산자는 마지막 행만 대체하는 정렬된 내부의 임시 테이블을 사용합니다. 만약 입력한 사항이 거의 정렬되어 있으면, TOP N 엔진은 마지막 행을 몇 번씩 삭제하거나 삽입해야 합니다. 거의 정렬된다는 것은 초기에 채우기를 위해 순서대로 삽입되어 있어 업데이트나 삭제, 포인터 전달 등이 많지 않은 힙을 처리한다는 것을 의미합니다. 거의 정렬된 힙을 정렬하는 것이 큰 테이..

WorkaHolic 2010.04.08

SQL Server가 잠겨 있습니다. 어떻게 되돌아갈 수 있습니까?

Q. SQL Server가 잠겨 있고 sysadmin 로그인도 되지 않습니다. 이 문제를 해결할 수 있습니까? 아니면 SQL Server를 다시 설치해야 합니까? A. SQL Server를 다시 설치할 필요는 없습니다. SQL Server를 액세스하려면 SQL Server의 인증 모드를 결정하는 SQL Server 2000과 SQL Server 7.0 레지스트리 키를 사용해야 합니다. SQL Server 7.0: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \MSSQLServer\MSSQLServer\LoginMode SQL Server 2000: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MicrosoftSQLServer\\MSSQLServer\Logi..

WorkaHolic/MSSQL 2010.04.08

SQL Server 2000, 7.0 및 6.x에서 Char 값 관리

Q. SQL Server 2000, 7.0 및 6.x는 char 값을 서로 다르게 관리합니까? 그렇다면, 적절한 데이터베이스 호환성 수준을 사용하여 이 차이를 해결할 수 있습니까? A. 60과 65 호환성 모드를 사용하면 SQL Server 6.x에서 SQL Server 2000이나 7.0으로 마이그레이션할 때 발생하는 대부분의 문제를 해결할 수 있습니다. SQL Server Books Online에는 90 페이지 이상의 호환성과 관련된 정보가 포함되어 있습니다. 그러나 Books Online은 char 값 관리에 대한 정보는 제공하지 않습니다. 다음 스크립트를 실행할 경우 DECLARE @test char (5) SELECT @test = 'a' SELECT right(@test, 1) 사용하는 호환성..

WorkaHolic 2010.04.08

Oracle 데이터베이스를 SQL Server 2000으로 마이그레이션하는 작업

요약 응용 프로그램 마이그레이션 절차는 매우 복잡해 보일 수도 있습니다. 각 RDBMS(관계형 데이터베이스 관리 시스템) 사이에는 아키텍처와 관련된 여러 차이점들이 있습니다. Oracle 아키텍처에서 사용되는 단어와 용어가 SQL Server에서는 전혀 다른 의미를 갖는 경우가 많습니다. 또한 Oracle과 SQL Server 모두 여러 가지 독점적인 사항을 SQL-92 표준에 추가해 왔습니다. 응용 프로그램 개발자의 관점에서 보면 Oracle과 SQL Server의 데이터 관리 방식은 여러 가지 면에서 서로 유사합니다. Oracle과 SQL Server의 내부적인 차이점은 매우 크지만 적절히 관리한다면 마이그레이션된 응용 프로그램에 주는 영향을 최소화할 수 있습니다. 이번 장은 SQL Server 20..

WorkaHolic/ORACLE 2010.04.08

MSSQL YEAR

YEAR 지정한 날짜의 연도 부분을 표시하는 정수를 반환합니다. 구문 YEAR ( date ) 인수 date datetime 또는 smalldatetime 형식의 식입니다. 반환 형식 int 비고 이 함수는 DATEPART(yy, date)와 동일한 기능을 수행합니다. 예제 다음은 03/12/1998에서 연도를 반환하는 예제입니다.SELECT "Year Number" = YEAR('03/12/1998') GO 결과 집합은 다음과 같습니다.Year Number ------------ 1998 (1개 행 적용됨) 다음은 날짜를 숫자로 지정하는 예제입니다. Microsoft® SQL Server™ 데이터베이스는 0을 1900년 1월 1일로 해석합니다.SELECT MONTH(0), DAY(0), YEAR(0) ..

WorkaHolic/MSSQL 2010.04.08

MONTH

MONTH 지정된 날짜의 월 부분을 나타내는 정수를 반환합니다. 구문 MONTH ( date ) 인수 date 날짜 형식에서 datetime 또는 smalldatetime 값이나 문자열을 반환하는 식입니다. 1753년 1월 1일 이후의 날짜에 대해서만 datetime 데이터 형식을 사용하십시오. 반환 형식 int 비고 MONTH는 DATEPART(mm, date)와 동일합니다. datetime 값을 항상 따옴표로 묶습니다. 이전 날짜에 대해서는 날짜를 문자 데이터로 저장합니다. Microsoft® SQL Server™는 여러 가지 날짜 스타일을 인식합니다. 날짜 및 시간 데이터에 대한 자세한 내용은 CAST 및 CONVERT를 참조하십시오. 예제 다음은 03/12/1998날짜에서 월의 번호를 반환하는 예..

WorkaHolic 2010.04.08

GETDATE

GETDATE 현재 시스템 날짜와 시간을 datetime 값의 Microsoft® SQL Server™ 표준 내부 형식으로 반환합니다. 구문 GETDATE ( ) 반환 형식 datetime 비고 날짜 함수는 SELECT 문 선택 목록이나 쿼리의 WHERE 절에서 사용될 수 있습니다. 보고서를 디자인할 때는 GETDATE를 사용하여 보고서를 만들 때마다 현재 날짜와 시간을 인쇄할 수 있습니다. GETDATE는 계정에서 트랜잭션이 발생한 시간을 기록하는 것과 같은 작업 추적에도 유용합니다. 예제 A. GET DATE를 사용하여 현재 날짜와 시간 반환 다음은 현재 시스템 날짜와 시간을 찾는 예제입니다.SELECT GETDATE() GO 결과 집합은 다음과 같습니다.-------------------------..

WorkaHolic 2010.04.08
반응형