파일 내용을 insert 하기

DB 2012. 10. 30. 16:56 |
 

text 파일을 만든다

필드구분은 콤마

레코드 구분은 엔터



BULK INSERT 테이블명
   FROM 'f:\파일명'
   WITH
      (
         FIELDTERMINATOR =',',
         ROWTERMINATOR ='\n'
      )

'DB' 카테고리의 다른 글

Agent XPs 서비스 활성화  (0) 2013.04.02
트랜잭션 로그 삭제  (0) 2012.10.30
테이블합치기 - union  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
Posted by ezmind
:

트랜잭션 로그 삭제

DB 2012. 10. 30. 16:53 |
 

 데이터베이스의 로그 파일이 꽉 찼습니다. 데이터베이스의 트랜잭션 로그를 백업하여 사용 가능한 일부 공간을 확보 하십시오.."

위와 같은 메세지가 나오면 디비는 물론 사이트도 열리지 않습니다.

할당된 트랜잭션로그 파일이 꽉차서 더이상 로그를 기록하지 못하는 경우 입니다.
그렇다고 로그파일의 크기를 너무 크게 잡거나, 자동증가토록 한후 백업을 받지 않으면, 로그파일이 수백메가 이상 커지게 됩니다.


트랜잭션 로그는 다음과 같이 삭제할 수 있습니다.

1. MS-SQL의 클라이언트 유틸리티 중 쿼리 분석기를 실행
2. 쿼리 분석기에서 해당 DB로 연결
3. 쿼리 창이 나타나면 다음 사항을 입력

backup log DB명 with no_log
dbcc shrinkdatabase(DB명, truncateonly)


mssql 2008 에서는 아래와같이 ...

backup log DB명 to disk='c:\DB명.trn'
dbcc shrinkfile('DB명_log',2)

4. 입력이 끝나면 쿼리 분석기의 상단부분 매뉴 중 [쿼리]-[실행]을 눌러 실행합니다.


다음과 같은 메세지 나오고 위 방법으로 안되는경우
DBCC SHRINKDATABASE: File ID 1 of database ID 8 was skipped because the file does not have enough free space to reclaim.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

아래처럼 하기

USE dbname
BACKUP LOG dbname TO DISK = 'C:\x\dbname.trn'
--First param below is fileno for log file, often 2. Check with sys.database_files
--Second is desired size, in MB.
DBCC SHRINKFILE(2, 500)
DBCC SQLPERF(LOGSPACE) --Optional
DBCC LOGINFO --Optional

'DB' 카테고리의 다른 글

Agent XPs 서비스 활성화  (0) 2013.04.02
파일 내용을 insert 하기  (0) 2012.10.30
테이블합치기 - union  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
Posted by ezmind
:

테이블합치기 - union

DB 2012. 10. 30. 16:49 |
 

select a, b, c from A
union
select a, b, c from B
order by a


다음아래의 조건을 충족해야 union 을사용할수 있습니다.

  - UNION의 대상이 되는 테이블들의 컬럼 구조가 일치해야 하며 자료형 이 호환 될경우

  - ORDER BY 절을 포함하고 있으면 전체 결과가 정렬.

'DB' 카테고리의 다른 글

파일 내용을 insert 하기  (0) 2012.10.30
트랜잭션 로그 삭제  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
랜덤 select  (0) 2012.10.30
Posted by ezmind
:

쿼리로 도스명령어 실행

DB 2012. 10. 30. 16:48 |
 

쿼리로 도스명령어 실행


master.dbo.xp_cmdshell 'dir'

'DB' 카테고리의 다른 글

트랜잭션 로그 삭제  (0) 2012.10.30
테이블합치기 - union  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
Posted by ezmind
:
 

@identity SCOPE_IDENTITY() IDENT_CURRENT()
모두 마지막으로 insert된 테이블의 identity 컬럼값을 구하는 것이지만 조금 다른점이 있다.

@identity
해당 구역 뿐만이 아니라 함수 호출등으로 인해 다른 테이블에 insert된 identity 값을 갖고 오게 되기 때문에 해당
테이블에 트리거가 걸려있고 그 트리거에서 또 다른 테이블에 insert하는 경우에 문제가 발생할 수 있다

SCOPE_IDENTITY()
현재 구역의 마지막으로 insert된 테이블의 identity를 갖고 오기 때문에 대부분의 경우
SCOPE_IDENTITY() 를 쓰기를 추천한다.

IDENT_CURRENT()
()안에 지정된 테이블의 마지막 identity를 갖고 오지만 섹션에 대한 구분이 없다 즉 다른 섹션에서 또다시
insert된다면 그 값은 기대값과 다를 수 있다

'DB' 카테고리의 다른 글

테이블합치기 - union  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
Posted by ezmind
:

랜덤 select

DB 2012. 10. 30. 16:43 |
 

랜덤으로 5개 가져오기


select top 5 * from 테이블 order by newid()



'DB' 카테고리의 다른 글

쿼리로 도스명령어 실행  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
mssql 버전확인  (0) 2012.10.30
Posted by ezmind
:
 

SET DATEFIRST 1    -- 주의 기준요일을 바꾼다 1=월요일
select DATEPART(wk, '2007-1-8') -- 몇번째주인지 구한다

'DB' 카테고리의 다른 글

마지막 insert 한 id 꺼내오기  (0) 2012.10.30
랜덤 select  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
mssql 버전확인  (0) 2012.10.30
Error 21002 [SQL-DMO] user already exists  (0) 2012.10.30
Posted by ezmind
:

테이블 삭제 - TRUNCATE TABLE

DB 2012. 10. 30. 16:41 |
 

TRUNCATE TABLE

테이블에 있는 모든 행을 삭제한다.

TRUNCATE TABLE table_name

 - DELETE와는 달리 모든 변경 사항을 로그에 기록하지 않고 할당 받았던 전체 데이터

    페이지의 반납 상황만을 로그에 기록한다.

 - DELETE문 보다 빠르다.

 - 즉시 테이블을 위한 데이터와 색인을 위한 공간을 반환한다.

 - 테이블은 여전히 존재한다.

  - 테이블 소유자만이 수행할 수 있다.

'DB' 카테고리의 다른 글

랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
mssql 버전확인  (0) 2012.10.30
Error 21002 [SQL-DMO] user already exists  (0) 2012.10.30
MSSQL TRIGGER  (0) 2012.10.24
Posted by ezmind
:

mssql 버전확인

DB 2012. 10. 30. 16:39 |
 

select @@version

'DB' 카테고리의 다른 글

랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
Error 21002 [SQL-DMO] user already exists  (0) 2012.10.30
MSSQL TRIGGER  (0) 2012.10.24
Posted by ezmind
:
 

Restore로 DB를 복원후
보안 [ Security ] - 로그인 [ Login ] 에서 아이디를 만들고

이 아이디에 DB를 지정할때  user already exists 라는 에러가 뜨면 아래와 같이 실행해주면 된다


use DB_Name
EXEC sp_change_users_login 'Auto_Fix', 'User Name'

'DB' 카테고리의 다른 글

랜덤 select  (0) 2012.10.30
날짜가 몇번째주인지 구하기  (0) 2012.10.30
테이블 삭제 - TRUNCATE TABLE  (0) 2012.10.30
mssql 버전확인  (0) 2012.10.30
MSSQL TRIGGER  (0) 2012.10.24
Posted by ezmind
: