MSSQL 에러 로그 관련

SQL Server 2005 제품 소개 및 기술 자료(microsoft 링크)

SQL Server™ 2005 System Views (SQLServer2005SystemMap.pdf )

T-SQL 작성 시 체크리스트 (T-SQL_Checklist_SQL_Server_2000.PDF )

무료 DBMS SQL Server Express (zdnet.co.kr)

SQL Server Express는 영구히 무료로 배포

재배포도 가능한데 이때는 MS에서 제안하는 Go-Live 라이센스에 동의해야 한다

Windows 2000이상을 요구하며, 닷넷 프레임워크 2.0 과 Windows Installer 3.0이상을 필요

sqlcmd -S localhost\SQLExpress

MSDE가 SQL Server 7의 엔진

기능 제한과 주요 기능
SQL Server Express는 여러 가지 기능적인 제한을 갖는다고 앞서 언급했다. 그 주요제한은 다음과 같다.

리포팅 서비스는 지원되지 않는다.

OLAP/Data mining 서비스는 지원되지 않는다.

Analsys 서비스는 지원하지 않는다.

DTS를 지원하지 않는다.

Database Mirroring은 지원하지 않는다.

Database의 크기는 4GB로 제한된다.

지원하는 RAM의 크기는 1GB까지이다.

SMP시스템이라도 CPU는 1개만 지원한다.

그러나 SQL Server Express는 SQL Server 2005의 한 에디션이다. 그러므로 다음과 같은 주요기능들을 지원한다.

SQL Server Express는 stored procedure를 지원한다.

SQL Server Express는 view를 지원한다.

SQL Server는 Trigger를 지원한다.

SQL Server는 Replication Subscriber가 될 수 있다.

SQL Server는 XML을 지원한다.

Upgrading MSDE 2000 to SQL Server 2005 Express (MSDEtoSQLExpress.doc )

sqlcmd 유틸리티(SQL Server 2005)

sqlcmd 유틸리티 (링크)

sqlcmd.exe를 사용하여 데이터베이스 엔진에 연결(링크)

T-SQL execution command line utility

위치 : C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.exe

연결: 인스턴스 이름, IP 주소, TCP/IP 포트 번호를 지정하여 연결가능(3가지 방법)

  1. sqlcmd -S 127.0.0.1
    sqlcmd -S 127.0.0.1\instanceB

스크립트 파일을 지정해서 실행 후 종료

  Unable to cast object of type

http://iamberke.com/archive/2007/08/25/unable-to-cast-object-of-type-microsoft-sqlserver-management-smo-simpleobjectkey-etc.aspx

 Microsoft.SqlServer.Management.Smo.SimpleObjectKey

 castObject.PNG

 제목: Microsoft SQL Server Management Studio

‘Microsoft.SqlServer.Management.Smo.SimpleObjectKey’ 형식 개체를 ‘Microsoft.SqlServer.Management.Smo.Agent.JobObjectKey’ 형식으로 캐스팅할 수 없습니다. (Microsoft.SqlServer.Smo)

http://addnull.tistory.com/tag/sql (SQL_Server_2000_System_Table_Map.chm )

http://www.viper.pe.kr/cgi-bin/moin.cgi/T-SQL_%ED%8C%81

링크드 서버

링크드 서버

작성: 2008/4/30

링크드 서버 – 외부DB의 테이블을 연결해서 쿼리 작성하기 ((0509)linkedServer.sql : 조회에서 생성, 삭제까지.. )

http://www.littleworld.net/ai/kmod.asp?no=270&isn=&mymsg=

  1. sp_addlinkedserver – 서버를 링크함.
    sp_linkedservers – 현재 링크되어있는 서버 목록 리스팅
    sp_addlinkedsrvlogin – 링크된 서버에 로긴함.

MSDN addlinkedserver

sp_addlinkedserver

서로 다른 DB간 동기화하는 방법좀.,.. (네이버)

Q. 링크드 서버 생성 후 로그인을 해놓았을 때 서버가 재부팅 되어 SQL Server 서비스가 재시작 되면
링크드 서버 연결의 재 로그인이 필요한가? => 테스트 결과 필요 없음

에러잡기

메시지 17, 수준 16, 상태 1, 줄 1
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server가 없거나 액세스할 수 없습니다.

[관리도구]-[구성 요소 서비스]들어가서

[콘솔 루트]-[구성 요소 서비스]-[컴퓨터]-[내 컴퓨터]-[분

패키지

SQL Server 2005 Integration Services (데이터 통합) 포켓북 (SSIS2005_Pocket.pdf )

(http://download.microsoft.com/download/6/8/f/68f15f44-e957-4a1a-97b8-b7444e4d0379/SSIS2005_Pocket.PDF)

패키지 편집 후에

SQL Server 2005 버전은 패키지 편집하는 것이 Visual Studio이다.

덕분에 번거러워졌다. dtsx를 파일시스템에 넣고 쓰는데, 변경사항이 적용이 안된다.

그래서 작업을 지우고 다시 로딩을 하니 된다.

패키지를 수정하면 로딩을 다시 해야 하나부다.

SQL Server에 저장되어 있는 SSIS 패키지를 삭제하기
  • 패키지 저장소(다음중 하나 또는 둘 모두로 구성가능)

    • Integration Services 서비스 구성 파일에 나열된 msdb 데이터베이스

      • msdb에 저장하는 패키지는 sysssispackages라는 테이블에 저장됨(SQL Server 2008에 해당)
    • 파일 시스템 폴더
  • dtutil 유틸리티 이용

    • 패키지 존재 확인

      1. C:\>dtutil /sql 111 /exists
        Microsoft (R) SQL Server SSIS 패키지 유틸리티
        32비트용 버전 9.00.1399.06
        Copyright (C) Microsoft Corp 1984-2004. All rights reserved.

        지정된 패키지가 있습니다.
    • 패키지 삭제

      1. C:\>dtutil /sql 111 /delete
        Microsoft (R) SQL Server SSIS 패키지 유틸리티
        32비트용 버전 9.00.1399.06
        Copyright (C) Microsoft Corp 1984-2004. All rights reserved.

        작업이 완료되었습니다.

http://msdn.microsoft.com/ko-kr/library/ms137916(SQL.100).aspx

SQL 2005에서 2000용 DTS 파일 작업

뛰어보자 개발박!!!

2005에서 SSIS 트랜잭션에서 객체 속성중에 TransactionOption에서

Required로 설정을 하면 선택한 개체가 트랜잭션을 생성하게 된다.

참여하게 되는 자식 컨테이너는 Supported로 설정이 되어 있으면 부모 컨테이너의 트랜잭션에 참여하게 된다.

(Not Supported로 설정된 작업은 제외된다.)

패키지

패키지 디자인 : SQL Server 개체 복사 작업 – [복사]

1) 대상 개체 만들기

2) 데이터 복사

기존 데이터 바꾸기: 안의 내용을 삭제 후 현제 대상에서 입력

데이터 추가: 무조건 추가 데이터를 업데이트

3) 데이터 정렬 사용

4) 모든 개체 복사 : 선택적으로 개체 안의 테이블 별로 복사 가능

5) 기본 옵션 사용용

KB1. 패키지로 추가 된 데이터에 대해서는 insert 트리거가 걸리지 않는다.(확인)

환경설정

sys.syslanguages(Transact-SQL)

SQL Server 2005의 언어와 langid

  • 영어 : 1033
  • 일본어 : 1041
  • 한국어 : 1042

http://technet.microsoft.com/ko-kr/library/ms190303.aspx

메세지 언어 바꾸기 : 일본용 MSDE가 설치되어 있어서 메시지를 해독(?)하기 어려웠다.

  1. set language Korean   — 한글로 바꾸기
    set language Japanese   — 일문으로 바꾸기
    set language Us_English   — 영문으로 바꾸기

http://msdn.microsoft.com/ko-kr/library/ms174398(SQL.100).aspx

ON [PRIMARY]

데이터베이스를 생성시 파일그룹을 2개 이상 생성시 위치를 지정하는 문장

데이터베이스를 파일그룹으로 생성하지 않고

기본적으로 데이터베이스를 만들면 PRIMARY 만 만들어지 지니까 on [primary]  는 생략가능

Update되는 Top 뷰와 Common table expression(CTE)

http://www.microsoft.com/korea/technet/expertlecture/MVP/seokjun_02.mspx

MS SQL의 시퀀스 : IDENTITY_INSERT

IDENTITY_INSERT

  1. SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF }

http://msdn.microsoft.com/en-us/library/aa259221(SQL.80).aspx

sql server indentity 속성 제거

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNO=16&no=69872&ref=69872&page=7

http://technet.microsoft.com/ko-kr/library/ms191131.aspx

추가

  1. Alter Table toner drop column id
    Alter Table toner add id int identity(1,1) not null
    Alter Table toner alter column id int not null
단일 사용자 -> Multi user 전환

멀티에서 단일은 쉬운데 그 반대는 어렵다.

서비스를 내렸다가 올린 직후 실행 혹은 OS 재부팅후 아래 수행

  1. alter database CollateDb
    set multi_user

할당 오류 및 일관성 오류 체크
  1. DBCC CHECKDB(‘Northwind’)

http://laigo.tistory.com/tag/SUSPECT

Korean_Wansung_CI_AS vs Korean_Wansung_CI_AI

데이터 정렬 선행 규칙

영문 윈도우에 MSDE를 설치했는데, Korean_Wansung_CI_AI 설치되는 바람에 문제가 좀있다.

원래는 Korean_Wansung_CI_AS로 설치되는데, 데이터 베이스간에 서버 데이터 정렬 방식이 달라 ‘=’ 연산을 할 수 없게 되었다.

현재 db의 서버 데이터 정렬 방식을 확인하려면(catalogName에는 카탈로그 DB 이름을 넣는 것이다) (http://www.inet.co.kr/faq/stories.php?story=07/09/03/0643942)

status 컬럼에 ‘Collation=’ 하고 나온다.

  1. EXEC sp_helpdb ‘catalogName’
    GO

로 확인하면 되고

변경하려면 catalog를 오른클릭(Management Studtio 기준) 한 후 [속성]-[옵션]에서 데이터 정렬을 바꾸어 주던지, 아래와 같은 명령어로 하면 된다.

  1. ALTER DATABASE catalogName
    COLLATE Korean_Wansung_CI_AS
    GO

그러나 다음과 같은 메시지

korean_wansung_cs_ai-error.png

@@

아니면 아래의 메시지가 나오며 변경도 안된다.

메시지 5030, 수준 16, 상태 2, 줄 1
작업을 수행하기 위해 데이터베이스를 배타적으로 잠글 수 없습니다.
메시지 5072, 수준 16, 상태 1, 줄 1
ALTER DATABASE가 실패했습니다. 데이터베이스 ‘catalogName’의 기본 데이터 정렬을 Korean_Wansung_CI_AI(으)로 설정할 수 없습니다.
//

메시지 5030, 수준 16, 상태 2, 줄 1
操作を実行するために、データベースを排他ロックできませんでした。
메시지 5072, 수준 16, 상태 1, 줄 1
ALTER DATABASE が失敗しました。データベース ‘catalogName’ の既定の照合順序を Korean_Wansung_CI_AI に設定できません。

왜 이를 말이냐…

Korean_Wansung_CI_AS 와 Korean_Wansung_CI_AI

의미:

Korean_Wansung_CI_AS

Korean_Wansung : 한글 완성형

CI: Case Insensitive (대소문자에 대한 구분 설정 : 대소문자를 구별하지 않는다; 사실 이는 한글에서는 의미가 없는 옵션) <-> CS(case-sensitive)

As: Accent Sensitive

Korean_Wansung_CI_AI

아래 명령어로 callation의 종류를 알 수 있다.

  1. SELECT  *
    FROM ::fn_helpcollations()
    GO

http://www.mssql.org/Lecture/11_Tips/ChangeCollation.asp

프로시저를 이용해서 메일 보내기
  1. EXEC msdb.dbo.sp_send_dbmail
        @profile_name = ‘기본프로필’,
        @recipients = ‘steve@banaba.com;bill@nanosoft.com’,
        @body = ‘The stored procedure finished successfully.’,
        @subject = ‘Test mail by SQL Server 2005 db mail’ ;

cf) http://msdn.microsoft.com/ko-kr/library/ms190307(SQL.100).aspx

SQL Server에서 SQL 메일을 사용하지 않고 전자 메일 보내기

FIX: SQL Mail 2000에는 Microsoft Outlook 2000 클라이언트가 필요하다

Oracle 데이터베이스를 MS SQL Server 7.0으로 마이그레이션 (
http://www.microsoft.com/korea/technet/sql/technote/oracle.mspx)

재귀함수 구현 : http://poco.egloos.com/302439

SQL Server Integration Services

Microsoft SQL Server 2005 Integration Services(SSIS) : 데이터 웨어하우징을 위한 ETL(추출, 변환 및 로드) 패키지를 비롯하여 고성능 데이터 통합 솔루션을 작성하기 위한 플랫폼

변수 사용

http://technet.microsoft.com/ko-kr/library/ms187953.aspx

  1. USE AdventureWorks;
  2. GO DECLARE @EmpIDVariable int;
  3. SELECT @EmpIDVariable = EmployeeID FROM HumanResources.Employee ORDER BY EmployeeID DESC;
  4. SELECT @EmpIDVariable; GO

deviceCount.sql testTmp.sql

MSDE 시스템 관리자 암호를 확인하고 변경하는 방법

http://support.microsoft.com/kb/322336/ko

기본 DBMS 이외의 DBMS 원격에서 접속이 안될 때?

MDAC의 버전문제라는 글

C:\ProgramFiles\Common Files\System\msadc

“An error has occurred while establishing a connection to the server. When
connecting to SQL Server 2005, this failure may be caused by the fact that
under the default settings SQL Server does not allow remote connections.
(provider: Named Pipes Provider, error: 40 – Could not open a connection to
SQL Server) (Microsoft SQL Server, Error: 1326)”

출처: http://www.developersdex.com/sql/message.asp?p=1867&ID=<309C7496-F36B-4398-9C52-322E6CB8DE3B@microsoft.com>

원격 접속 설정(How to configure SQL Server 2005 to allow remote connections)

한글) 시작-프로그램-Microsoft SQL Server 2005-구성 도구-SQL Server 노출 영역 구성

영문) Start-Program-Microsoft SQL Server 2005-Configuration Tools-SQL Server Surface Area Configuration

서버 및 데이터베이스 연결 문제 해결

1) MS SQL Server 2005 Express

http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx

아래의 방법을 했는데도 연결이 안되었다.

우선 해준것은

  1. sa 계정을 온라인 사용가능하게 (Management Studio Express에서 제일 상단 노드 오른쪽 클릭-[속성])

    • auth.png
  2. SQL Server Configuration Manager 에서 TCP/IP 연결 활성화
  3. SQL Server Surface Area Configuration에서 ‘Remote connection’ 서비스 가동
  4. 방화벽 해제

    1. C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn 의 sqlservr.exe를 등록.

에러메시지:  서버에 연결하는 동안 오류가 발생했습니다. SQL Server 2005에 연결하는 경우 SQL Server 기본 설정에서는 원격 연결을 허용하지 않기 때문에 발생한 오류일 수 있습니다.

connection.png

원격 데이터 베이스에다가 alias(별칭)도 붙여 봤지만 안된다. 결국 아래 (Hint) 사이트에서 힌트를 얻어 해결.

SQL Server Configuration Manager를 실행

SQL server 2005 서비스에서 실행이 안되는 것이 2개가 보인다. 그중

“SQL Server Browser”라는 서비스를 가동 시킨다.

우선, 시작모드를 “사용 안 함”에서 “자동”으로 바꾸고 시작을 시킨다.

Server_browser.png

Server_browser2.png

Hint: SQL Server 2005 Express 주무르기…

MS SQL -> my sql

http://cybershin.x-y.net/tt/entry/MSSQL%EC%97%90%EC%84%9C-MySQL%EB%A1%9C-%EC%9D%B4%EC%A0%84%EC%8B%9C%EC%97%90-%EC%A3%BC%EC%9D%98%ED%95%A0-%EC%A0%90%EB%93%A4

SQL Server 2000 Desktop Engine(MSDE 2000)에서 복제

http://support.microsoft.com/kb/324992/ko#appliesto

MSDE 2000: 트랜잭션 게시에 사용할 수 없다.원격 배포자를 사용할 수 없다.데이터베이스 크기를 2GB로 제한.

연결 수는 5개 연결일 때 최적화, CPU는 1개만 지원.

쿼리 마법사에서 명령으로 현재 선택되어 있는 카탈로그 데이터베이스 바꾸기
  1. use Northwind

에러:

메시지 8101, 수준 16, 상태 1, 프로시저 AFTER_INSERT_COST_BY_DEVICE, 줄 14
‘dbo.costByDevice2’ 테이블에 있는 ID 열의 명시적 값은 열 목록이 사용되고 IDENTITY_INSERT가 ON일 때만 지정할 수 있습니다.

트리거

http://sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql01&group_name=board&idx_num=15&page=1&category=&search=&b_cat=0&order_c=idx_num&order_da=asc

연결이 안될경우?

무선 인터넷이 켜져있는지 확인해본다. 끈다.

MS SQL의 날짜형(datetime의 최대 최소) : 1753년 1월 1일부터 9999년 12월 31일

sysdate.pnghttp://10.15.1.100:9090/LoginProject/

MS-SQL 날짜형

CAST and CONVERT

DATEDIFF (Transact-SQL)

LPad 함수 : 000001 <= 1

REPLICATE : 주의-널 처리

  1. select isNull(REPLICATE(‘0’, 2 – DATALENGTH(‘001’)),”) + ‘001’

http://users.handysoft.co.kr/~jelong/dateformat.htm

2008.03.04형태로 변환:

  1. SELECT CONVERT(VARCHAR, GETDATE(), 102) as date

 getdate() 함수에 대한 의문점

1) 가져오는 시간은 어떤 시간을 기준으로 하는지?

– Microsoft SQL Server가 설치되어 있는 PC(보통 서버)의 시스템 시간에서 가져온다.(확인완료)

2) 위에 convert를 하면 시간의 변화에 따라 날짜가 바뀔지?

예) 2008-03-21 10:14:37.790 면 (오후) -> 2008-03-21고, 2008-03-21 20:14:37.790 면 (오후) -> 2008-03-22 일까?

답) 아니다. 날짜만 변경됨. 위의 결과 둘다 2008-03-21로 나타난다.(확인완료)

http://www.littleworld.net/ai/kmod.asp?no=1423&isn=&mymsg=

이번주의 첫날(일요일)을 구하는 법
select dateadd(dd, 1-(datepart(dw, getdate())), getdate())

이번달의 첫날을 구하는 법
select convert(datetime, convert(varchar(6), getdate(), 112) + ’01’)

DATEADD (Transact-SQL)

SQL Server Management Studio Express

http://bybi.tistory.com/332

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist

SQL Server 2005 Express Edition 얻기

http://msdn2.microsoft.com/en-us/express/bb410792.aspx

Client Tool 설치 (http://www.simpleisbest.net/archive/2005/11/22/298.aspx)

addClientTools.png

출저 : http://namoda.springnote.com/pages/826900



코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호