MYSQL

MySql 내용

SojuMan 2009. 1. 29. 01:15

2007년 4월 9일 월요일

MDAC 버전확인 하기

레지스트리에서 확인하면 된다.

HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer

주로, VBScript등으로 DB접속할때나, App 등에서 DB접속할때,
서버를 확인 할수 없다는 메시지가 나올때,

MDAC 버전을 확인하여
필요한 버전을 다운로드 받아 설치 해야 한다.

물론, MS사이트에서 다운로드 받으면 된다.

2007년 3월 26일 월요일

테이블 전체 레코드 구하기 (고성능)

- 일반적인 방법
SELECT Count(*) FROM [TableName]

- 성능을 향상 시킬 수 있는 방법
SELECT rows FROM sysindexes WHERE id = OBJECT_ID('[TableName]') AND indid <>


100만건 DB에서 예상비용으로 1000배 이상의 효과를 보았음.
MS-SQL 7.0, 2000, 2005 모두 사용가능

Collation이 달라서 에러가 날때

에러 : Cannot resolve collation conflict for equal to operation

컬럼명 COLLATE "Collation 타입"

ex)

SELECT * FROM Data

WHERE MID COLLATE SQL_Latin1_General_CP1_CI_AS in (

SELECT MID FROM Data

)

소심한 개발자를 위한 자동증가 번호 조절하기

보통 테이블을 만들고, Primary Key로 자동증가형을 선택하여 작성 합니다.

그상태에서 각종 테스트를 하다보면, Key값은 계속증가 하죠

그래서 데이타를 다 지웠는데, 새로 입력한 값은 이전에 등록한 이후의 값으로 표시됩니다.

이런, 그래서, 테이블을 Drop 시키고 새로 만들면 괜찮기는 한데,

관계를 잡았던거라면, 관계풀고, Drop 한다음에 다시 관계를 잡자니

여간 불편한게 아니군요.

이럴때, DBCC CHECKIDENT (테이블명)을 하면, Key 값이 초기화 됩니다.

아래는 SQL 2000 도움말을 가져온것이구요.

소심하다거나, 깔끔하다거나, 높은완성도를 추구하는 개발자를 위한 팁입니다. ^_^

A. 필요에 따라 현재 ID 값 재설정
다음은 jobs 테이블의 현재 ID 값을 재설정하는 예제입니다.

USE pubs
GO
DBCC CHECKIDENT (jobs)
GO

B. 현재 ID 값 보고
다음은 jobs 테이블의 현재 ID 값을 보고하고, ID 값이 정확하지 않아도 그 값을 수정하지 않는 예제입니다.

USE pubs
GO
DBCC CHECKIDENT (jobs, NORESEED)
GO

C. 현재 ID 값을 30으로 설정
다음은 jobs 테이블의 현재 ID 값을 30으로 설정하는 예제입니다.

USE pubs
GO
DBCC CHECKIDENT (jobs, RESEED, 30)
GO

쿼리만들때, 너무나 많은 컬럼 자동으로 만들기

프로그램시, 쿼리를 사용할 경우가 많다.
그런데, 컬럼의 갯수가 100개가 된다면, 한숨이 절로 나온다.
이럴때는 어떻게 할까?

1. 쿼리분석기에서 테이블의 "열"을 선택한다.





















2. 해당 "열"을 쿼리분석기 창에 드래그 한다.



컬럼명들이 자동으로 생성되어 있다.
이제 select, from, where 절만 적절하게 넣어주면 된다.
오타걱정도 필요 없다. ^^

이미 만들어져 있는 Table의 쿼리를 쉽게 생성하기

1. EM에서 테이블을 선택합니다.

2. 테이블에서 오른쪽 마우스메뉴에서 복사를 선택하거나 Ctrl + C 을 선택합니다.
















3. 쿼리 분석기에 붙여 넣습니다.















참으로 편리한 기능이다.

나의 MS-SQL 버전은?

MS SQL의 버전에는 여러가지가 있었다.

내가 본건

MS SQL 7.0

MS SQL 2000 뿐이지만... 6.5도 있었다고 하고, 그 이전에도 있었을 것이다.

그런데, 컴퓨터 화면, 우측하단 트레이에서 오른쪽 마우스 버튼으로 버전을 확인해보면,

8.0 어쩌구 저쩌구 라고 나온다.

거참 이상하다... 내껀 분명히 2000 인데....

그럴때, 이걸 해본다.

1단계 : SELECT @@VERSION

이걸 하면 나의 경우에는 요렇게 나온다.

Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
MS SQL의 버전과 함께, 운영체제의 버전이 나온다.

고로, SQL 2000은 내부적으로 버전 7.0 이후에 나온 8.0 이 맞는 다는 예기이고,

Windows 2000 여시 NT 4.0 이후에 나온 버전 5.0 이라는 것이다.

더불어, 운영체제에 설치된 서비스팩 버전도 함께 표시된다.

한단계 더 나가면,

2단계 : XP_MSVER 이라는 내장 스토어드 프로시저가 있다

exec xp_msver 만 사용하면, 전체 내용이 표시되고,

exec xp_msver ProductVersion 와 같이 항목 이름을 추가하면, 해당 항목만 표시된다.