MS-SQL 12

트리 구조 쿼리

다소 복잡함. 한번에 눈에 잘 안들어 온다.카페과 그 카페를 관리하는 관리자 정보가 한 테이블에 존재하고 이를 트리 형태로 출력하는 쿼리.부가 정보은 주소 전화 번호 포함./*with netcafe(Parent_Code, NetCafe_Code, NetCafe_Name1, NetCafe_Tel, levels, sort)as(select Parent_Code, NetCafe_Code, NetCafe_Name1, NetCafe_Tel, 1 as levels, convert(varchar, isnull(Parent_Code,'') + ' ' + NetCafe_Code) as sortfrom dbo.NetCafe_Info_Base (nolock)where Parent_Code is nullunion allsel..

MS-SQL 2014.02.10

DB 마이그레이션 후...

하위 버전에서 상위 버전예를 들면 MS-SQL 2000에서 MS-SQL 2005로 DB를 마이그레이션 해야 하는 경우가 종종 있다.장비 교체와 함께 DB를 업데이트 하는 경우가 주로 이다.대부분 해당 파일을 복사하여 붙이거나 또는, 백업한 파일을 복원하여 사용한다.보통 일반 쿼리(ANSI)는 상관이 없지만, 업데이트 하면서 지원되는 쿼리를 실행하면 안된다.정상적으로 생성한 것이 아니라 호환성을 가지고 그냥 가져다 붙인 경우해 해당 버전에 맞게 되어 있지 않다. 그 때 간단하게 해결 할 수 있는 방법이 있다.특정 데이터베이스 동작이 지정된 버전의 SQL Server와 호환되도록 설정하는 기능이다.sp_dbcmptlevel [DB명], 90 앞인자 값은 DB명, 뒤는 호환 버전 번호이다. 아래 표를 참조한다..

MS-SQL 2013.10.28

MS-SQL Restore시 1354번 에러

MS-SQL 2000의 데이터를 최신인 2012에 복원을 하려고 하니까 안된다.원래 안된다고 한다. MS-SQL 2012는 MS-SQL 2005이상이 되어야 마이그레이션이 가능하단다.방법이 없어 어쩔 수 없이 2000의 DB를 백업하고, 2005에 복원하고,다시 백업하여 2012에 복원하는 방법 밖에는 없다. 그런데 여기서 문제, 2005부터 데이터베이스 마스터 키라는 것이 추가 되어 가끔 복원할 때마다 이 것 때문에 복원이 시 에러가 종종 발생한다. 이번에는 1354번 에러 대처 방법.보통은 다른 머신에서 가져온 백업 파일을 복원하는 것이라 파일타입으로 하는데 잘 안된다.이 때는 파일 복원이 아닌 DB에서 복원을 선택하면 잘 된다.이유는 모르겠지만..

MS-SQL 2012.06.26

Linked DB 생성하기

MS-SQL과 MS-SQL은 간단히 만들 수 있다고 하지만 실제 생성해 보면 안된다.문제는 MS-SQL이 같은 도메인이고 alias도 나 맞추어 있을 때만 간단하다.일반적으로 서로 도메인이 다르거나 하면 다른 DB를 연결하는 방법과 같은 방법으로 진행해야 한다. USE [master]GOEXEC master.dbo.sp_addlinkedserver @server = N'JM', @srvproduct='', @provider=N'SQLNCLI', @datasrc=N'192.168.1.1', @provstr=N'Provider=SQLOLEDB;Data Source=192.168.1.1;Initial Catalog=jan;User id=jm; Password=jm', @catalog=N'jan'GOEXEC m..

MS-SQL 2012.06.08

백업 파일로 리스토어 할 때 에러가 나면...

MS-SQL 2000의 백업을 2005로 리스토어할 때 또는 다른 머신의 백업을 리스토어 할 때 3152번 에러가 많이 난다.문제는 새로운 DB 인스턴스명을 만들어 파일을 생성시킨 후 그 위에 오버라이트 명령을 주어도 잘 안되는 경우가 있다.그 때는 그냥 과감하게 포기... restore filelistonly from disk='D:\ftproot\INQ.BAK' 위 명령어는 백업 파일에 있는 파일 정보를 조회하는 명령어이다.조회를 하면 데이터 파일인 mdf 파일정보, ldf파일정보를 조회할 수 있다.실제 물리적인 위치정보와 로컬명을 같이 조회할 수 있다. RESTORE DATABASE Inq FROM DISK = N'D:\ftproot\INQ.BAK' WITH FILE = 1, MOVE N'Inq_D..

MS-SQL 2012.04.26

Linked DB를 이용하여 DDL문 사용하기

MS-SQL에서 일반적으로 linked db를 이용하여 다른 DB를 자신의 DB에서 처럼 사용할 수 있다.일반적인 DML(insert, update, delete)는 별 문제 없이 사용할 수 있지만, DDL(create, drop, truncate)등은 사용할 때 권한 문제가 발생한다.필요한 권한은 sysadmin 고정 서버 역할 및 db_owner 및 db_ddladmin 고정 데이터베이스 역할의 기본 권한들이다.문제는 연결한 계정이 권한을 가지고 있어도(SA 권한으로 연결) 실행이 안되고 에러가 발생한다.다음과 같이 하면 DDL문을 실행할 수 있다. Use master; Go ALTER SERVICE MASTER KEY FORCE REGENERATE; Go 이는 SQL 2005부터 추가된 SERVIC..

MS-SQL 2012.04.17

MS-SQL 인덱스 다시 작성 예제

1. 인덱스 다시 작성 다음 예에서는 Work 데이터베이스의 Employee 테이블에 채우기 비율 80의 Employee_EmployeeID 클러스터형 인덱스를 다시 작성함. USE Work; GO DBCC DBREINDEX ("Employee", PK_Employee_EmployeeID,80); GO 2. 모든 인덱스 다시 작성 다음 예에서는 채우기 비율 값 70을 사용하여 Work의 Employee 테이블에서 모든 인덱스를 다시 작성함. USE Work; GO DBCC DBREINDEX ("Employee", " ", 70); GO

MS-SQL 2012.01.31