http://www.microsoft.com/ko-kr/sqlserver/event/sqlunplugged2013/agenda.aspx

 

올해도 지른. ...

 

microsoft pass
SQL Unplugged 2013
2013.10.16(수) 08:30~18:00  l  논현동 파티오 9 약도보기
blank
SQL Unplugged 2013

HOME 아젠다 세션소개 이벤트 행사안내 blank 사전등록하기 blank

아젠다
키노트 1 – SQL PASS Korea
키노트 2 - 한국마이크로소프트
SQL 토크쇼 – 전문가로 가는 지름길
아젠다

blank
Welcome Hekaton
아주 쉽고 재미있는 인덱스 이야기
SSMA를 통한 Oracle에서 SQL Server로 건너가
SQL Server 2012 SSIS Package 업그레이드 방안
5 reasons why I prefer MS SQL Server to MySQL
SQL Server를 활용한 비즈니스 플랫폼 구성
Deadlock 기초부터 심화
개발자를 위한 SQL 튜닝
실전! SQL Server AlwaysOn
PDW v2 & PolyBase
EIM : 신뢰할 수 있는 데이터를 위한 최선의 선택
Columnstore Index best practice

 

맺음말 및 경품추첨

SQL Server 평가판을 설치해 놓고, 한동안 잊고 살다가~~
SQL Server 2012 Management Studio를 실행하면...

1.png

 

이런 메시지를 만날 수 있습니다. 두둥~

2.png

 

정식 에디션을 구매했음에도 불구하고, 이런 메시지를 만나면 멘붕이 오면서 O/S 재설치를 고려할 수도 있는데,

이 때에는 업그레이드 기능을 이용하면 됩니다.

 

1. 우선 정식 DVD를 넣고, 자동실행을 한 뒤, "유지 관리" 를 선택합니다.

3.png

 

2. 유지관리에서 "버전 업그레이드"를 선택합니다.

4.png

 

3. 다음과 같이 화면이 변경되면서 업그레이드가 시작됩니다.

5.png

 

6.png

 

 4. 설치 규칙 검사를 진행합니다.

7.png

 

5. 특별한 문제가 없는 경우 "확인"을 클릭합니다.

   이미 이전에 SQL Server 2012를 설치했으므로, 구성을 변경하지 않았다면 큰 문제 없이 통과됩니다.

8.png

 

6. 프로세스 처리 메시지가 표시됩니다.

9.png

 

7. "지원 규칙 작업"이 완료되면, "다음"을 선택합니다.

10.png

 

8. 제품 키 입력 화면입니다. 정식 라이선스를 구매한 경우 이미 제품키가 입력되어 있으므로, 특별히 입력할 필요는 없습니다.

   다만, Command 창에서 별도로 수행하려면 해당 키를 알아야 합니다.

11.png

 

9. 소프트웨어 사용 동의에서 "동의함"을 체크하고, "다음"을 선택합니다.

12.png

 

10. 인스턴스를 선택합니다. SQL Server 2012만 설치되어 있고, 기본 인스턴스를 사용한 경우엔 "MSSQLSERVER"가 됩니다.

 저의 경우엔 SQL2012라는 인스턴스로 사용하여 다음과 같이 표시된 것입니다. "다음"을 선택합니다.

13.png

 

11. 버전 업그레이드 규칙을 확인합니다. 특별한 이상이 없을 경우 "다음"을 선택합니다.

14.png

 

** 업그레이드하려는 버전이 지원되는 버전이어야 합니다. **

자세한 사항은 다음 URL에서 확인할 수 있습니다. : http://msdn.microsoft.com/ko-kr/library/ms143393.aspx

 

12. 최종적으로 업그레이드 준비상태를 확인하고, "업그레이드" 버튼을 선택합니다.

15.png

 

13. 업그레이드가 완료되면 다음과 같은 화면이 표시됩니다. 만약 오류가 발생한 경우,

  12.번 단계에서 표시된 구성 파일 경로에서의 로그를 찾아 분석합니다.

16.png

 

14. 이제 SQL Server Management Studio를 실행하여 버전을 확인하면 다음과 같습니다.

17.png

 

오홋. 성공입니다.

 

** 참고로  Command 창에서 업그레이드를 진행하려면

   Setup.exe /q /ACTION=editionupgrade /INSTANCENAME=<Instance Name> /PID=<PID key for new edition> 를 수행하면 됩니다.

  > <Instance Name> : SQL Server 2012를 설치할 때 지정한 인스턴스명입니다. 특별히 지정하지 않으면  "MSSQLSERVER" 입니다.

  > <PID key for new edition> : 제품키 입니다. 위 GUI 설정에서는 8.번에 나온 제품키 입니다.

 

SQL Server 2008 은 다음 URL을 참고하세요.

 

* SQL2K8 평가판에서 정품으로 업그레이드 하는 방법
http://blogs.technet.com/b/koreapartner/archive/2009/03/04/sql2k8.aspx

 

SQL Server Sample Database 따로 다운로드받아야 하는 건 아시죠?

 

다음 페이지에서 다운로드받으실 수 있습니다.

 

http://msftdbprodsamples.codeplex.com/releases/view/55330

 

MDF만 별도로 다운로드받을 수 있으므로, Attach해서 사용하시면 됩니다.

 

SQL Server 2008 R2 는 다음 페이지를 참조하세요.

 

http://msftdbprodsamples.codeplex.com/releases/view/59211

http://www.sqler.com/347707

 

* Oracle Multi In MSSQL 처리하기.

 

# Oracle

SELECT A, B, C, D

FROM TABLE_A

WHERE (A, B) IN

(

       SELECT BB.A, CC.B

       FROM TABLE_B BB, TABLE_C CC

       WHERE BB.A = CC.A

)

 

 

# SQL Server

SELECT A, B, C, D

FROM TABLE_A AA JOIN

(

       SELECT BB.A, CC.B

       FROM TABLE_B BB JOIN TABLE_C CC ON BB.A = CC.A

)

AAA ON  AA.A = AAA.A AND AA.B = AAA.B

 


안녕하세요? [쓸만한게없네] 윤선식입니다.

간만에 글을 올리네요.

RAISERROR 관련된 글은 여기저기 있지만 심플하게 되어 있는 샘플이 없는 것 같아서 하나 올립니다.

예제는 A값과 B값을 입력받아서 A / B를 한 결과를 돌려주는 것입니다.

Procedure는 다음과 같이 구성합니다.

CREATE PROC [dbo].UP_RaiseTest

@VAL1 INT,

@VAL2 INT,

@VAL3 INT OUTPUT

AS

BEGIN

DECLARE @ErrorNumber INT;

DECLARE @ErrorSeverity INT;

DECLARE @ErrorState INT;

DECLARE @ErrorProcedure NVARCHAR(126);

DECLARE @ErrorLine INT;

DECLARE @ErrorMessage NVARCHAR(2048);

SET @ErrorNumber = 0;

BEGIN TRY

SET @VAL3 = @VAL1 / @VAL2;

END TRY

BEGIN CATCH

SELECT

@ErrorNumber = ERROR_NUMBER()

-- CATCH 블록을 실행시킨 오류의 오류번호를 반환합니다.

,@ErrorSeverity = ERROR_SEVERITY()

-- CATCH 블록이 실행되도록 오류의 심각도를 반환합니다.

,@ErrorState = ERROR_STATE()

-- CATCH 블록을 실행시킨 오류의 상태번호를 반환합니다.

,@ErrorProcedure = ERROR_PROCEDURE()

-- CATCH 블록이 실행되는 오류가 발생한 저장프로시저나 트리거의 이름을 반환합니다.

,@ErrorLine = ERROR_LINE()

-- CATCH 블록실행을 유발한 오류가 발생한 줄번호를 반환합니다.

,@ErrorMessage = ERROR_MESSAGE()

-- CATCH 블록을 실행시키는 오류의 메시지텍스트를 반환합니다.

END CATCH;

IF @ErrorNumber <> 0

BEGIN

SELECT

@ErrorNumber AS ErrorNumber

,@ErrorSeverity AS ErrorSeverity

,@ErrorState AS ErrorState

,@ErrorProcedure AS ErrorProcedure

,@ErrorLine AS ErrorLine

,@ErrorMessage AS ErrorMessage

;

RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState);

END

END

프로시져의 직접 실행 사용법은 다음과 같습니다.

DECLARE @RETVALINT

DECLARE @VAL1 INT, @VAL2 INT, @VAL3 INT

SET @VAL1 = 10;

SET @VAL2 = 0;

EXEC @RETVAL = dbo.UP_RaiseTest @VAL1, @VAL2, @VAL3 = @VAL3 OUTPUT;

SELECT @RETVAL, @VAL3;

위 프로시저를 실행한 결과는 다음과 같습니다.

SSMS_RAISERROR.jpg

같은Procedure.Net Program에서 다음과 같이 사용할 수 있습니다.

private void RaiseErrorTest()

{

string connectionString = "~~~~";

SqlConnection conn = null;

SqlCommand cmd = null;

int cnt = 0;

int intReturnValue = 0;

try

{

conn = new SqlConnection(connectionString);

cmd = new SqlCommand("TestDB.DBO.UP_RaiseTest", conn);

cmd.CommandType = CommandType.StoredProcedure;

SqlParameter pVal1 = cmd.Parameters.Add("@VAL1", SqlDbType.Int);

SqlParameter pVal2 = cmd.Parameters.Add("@VAL2", SqlDbType.Int);

SqlParameter pVal3 = cmd.Parameters.Add("@VAL3", SqlDbType.Int);

SqlParameter RetVal = cmd.Parameters.Add("@RetVal", SqlDbType.Int);

pVal3.Direction = ParameterDirection.Output;

RetVal.Direction = ParameterDirection.ReturnValue;

pVal1.Value = int.Parse(txtA.Text); // A 값을 받습니다.

pVal2.Value = int.Parse(txtB.Text); // B 값을 받습니다.

conn.Open();

cnt = cmd.ExecuteNonQuery();

intReturnValue = (int)RetVal.Value;

txtC.Text = pVal3.Value.ToString();

conn.Close();

}

catch (SqlExceptionSqlex)

// 부분이 반드시 필요함. 일반 Exception 받기 전에 SQL Exception 먼저 처리하도록 합니다.

{

foreach (SqlErrorerr in Sqlex.Errors)

// SQL Exception 가져옵니다.

{

txtC.Text = Sqlex.Message;

// C 값을 표시할 자리에 ERROR_MESSAGE() 가져오도록 합니다

}

}

catch (Exceptionex)

{

txtC.Text = ex.ToString();

}

finally

{

if (cmd != null)

cmd.Dispose();

}

}

form_1.jpg

정상적일 경우엔 10 / 5 = 2 의 값을 나타냅니다.

form_2.jpg

에러일 경우 C 값을 나타내는 자리에 ERROR_MESSAGE() 를 표시합니다.

이상입니다.

+ Recent posts