프로그래밍/DB 2010. 1. 8. 17:50


테이블 복사가 필요한 경우가 있다.

데이터 복사만 필요한 경우라면 쉽게 해결 되지만,

테이블의 제약조건등과 요소가 필요한 경우에는 여러 가지

고려해야 하는 것들이 있다.

 

그럼 테이블 복사를 해보도록 하겠다.

 

1.     테이블을 복사하는 가장 단순한 방법

SELECT  * INTO  TmpTable

FROM     OriTable

 

2.     테이블 생성 후, 데이터 + 제약조건 복사

CREATE TABLE TmpTable (

  ID INT NOT NULL PRIMARY KEY,

  Name VARCHAR(40) NOT NULL

)

 

SELECT  * INTO  TmpTable

FROM     OriTable


3.     테이블 생성 후, 데이터 + 제약조건 + IDENTITY 복사

 ‘*’를 사용할 수 없고 명시적으로 Column명을 선언해 줘야 한다.

 

CREATE TABLE TmpTable (

  ID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,

  Name VARCHAR(40) NOT NULL

)

SET IDENTITY_INSERT TmpTable ON

 

INSERT  INTO TmpTable ( ID,  Name )

SELECT  ( ID,  Name )

FROM    OriTable


4. 테이블 + 제약조건 + 인덱스 + 트리거 복사 ( SSMS 사용 : SQL Server Management Studio )

※ 스크립트 생성 의도에 맞게 옵션을 선택하고 실행하면 되지만,
스크립트가 생성 하려는 테이블 + 제약조건 + 인덱스 + 트리거가 존재하는 경우 충돌이 일어날 수 있다.
[ 중복확인 Tip ] => 아래 확인



1. 서버의 테이터베이스 선택 > 작업 > 스크립트 생성

2. 생성한 스크립트 실행




[ 중복 확인 팁 ]

SP_DEPENDS [테이블명]          -- 테이블종속성확인

SP_HELPCONSTRAINT [테이블명]   -- 테이블제약조건확인

SP_HELPINDEX [테이블명]         -- 테이블인덱스확인

 

/* 테이블을 사용하는 프로시져 검색*/

SELECT  *

FROM    sys.procedures

WHERE   OBJECT_DEFINITION(OBJECT_ID) LIKE '%[테이블명]%'

 

/*  테이블을 사용하는 트리거 검색*/

SELECT  *

FROM    sys.triggers

WHERE   OBJECT_DEFINITION(OBJECT_ID) LIKE '%[테이블명]%'

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. ㅇㅅㅇ 2013.02.22 13:36  댓글주소  수정/삭제  댓글쓰기

    잘 보고 가요~ 덕분에 세팅 잘 했네요

  2. 오즈마스터™ 2020.01.23 14:38 신고  댓글주소  수정/삭제  댓글쓰기

    2.번항목이 좀 잘못된듯 싶어서요.

    테이블 생성후 select * into ...... 는 안되지 않나요?
    이미 테이블이 존재하기 때문에





프로그래밍/SilverLight 2010. 1. 6. 00:34

실버라이트 배포에 참고 해야할 문서이다.

Silverlight Deployment Guide v2

Microsoft Corporation

Published: April 2009

Author: David Tesar

Editor: Bob Pomeroy


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/SilverLight 2010. 1. 4. 14:47

플래시에서 사용하는 FlashVars와 같이 실버라이트에서는 InitParams를 제공한다.
InitParams를 사용하는 방법과 넘겨받은 값으로 초기화 하는 방법과 
실버라이트를 사용하는 페이지의 QueryString 사용에 대해서 알아보도록 하겠다.


1. InitParams를 사용하기
   ※ 웹 페이지에서 실버라이트를 호출할때 InitParams를 설정해 주는 방법으로 2가지 방법이 이다.

   1.1 ASP.NET의 Silverlight Control 사용
<asp:Silverlight runat="server" Source="~/ClientBin/Sample.xap" Version="2.0" Width="100%" Height="100%" InitParameters="DataSource=http://xxxxx.xxx" />

   1.2 Html의 Object 태그 사용
<div id="silverlightControlHost">
 <object data="data:application/x-silverlight," type="application/x-silverlight-2-b1" width="100%" height="100%">
  <param name="source" value="~/ClientBin/Sample.xap"/>
  <param name="onerror" value="onSilverlightError" />
  <param name="background" value="white" />
  <param name="initParams" value="DataSource=http://xxxxx.xxx" />
  <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;">
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
  </a>
 </object>
 <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>

2. 실버라이트에서 InitParams 사용하기
   ※ InitParams를 활용하는 방법이 여러가지 있겠지만, 여기서는 InitParams값을 통으로 넘기도록 하겠다.

   1. App.xaml.cs 파일 수정 ( Silverlight 동작시 제일 처음 동작하는 부분 )
  private void Application_Startup(object sender, StartupEventArgs e)
  {
      // InitParams를 별도로 생성한 MainPage.xaml에 넘겨준다.
      this.RootVisual = new MainPage(e.InitParams);
  }

   2. MainPage.xaml.cs. 파일 수정
    // InitParams값을 받아 초기화 하는 생성자 함수 추가
    public MainPage(IDictionary<string, string> InitParams)
      : this()
    {
      this._initArguments = InitParams;
    }

3. 실버라이트를 사용하는 페이지의 QueryString 사용

ex ) xxx.aspx?DataSource=http://xxxxxxx 일때

// 현재 브라우저의 HTML 문서를 가져온다.

System.Windows.Browser.HtmlDocument doc = new System.Windows.Browser.HtmlDocument();

// QueryString값 중 DataSource를 취한다.
String DataSourceUrl = doc.QueryString["DataSource"];


이상 간단하게 실버라이트를 사용할때 페이지에서 값을 할당하는 법을 알아 보았다.

여기서 급 궁금해 지는 한가지!!
'실버라이트를 사용하는 스킬을 업하는 것이 플래시를 사용하는 스킬업하는 것보다
개발자 커리어에 좋을까?'

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/DB 2009. 12. 24. 18:01


Access Pattern이란?
말 그대로 접근(Access) 하는 양식(Pattern) 이다.
원하는 데이터를 빠르게 얻기 위해 접근 하는 방법 정도로 이해하면 될것 같다. ( 아마도 ^^ ) 
억세스 패턴 처음 시간으로 용어 정리를 하도록 하겠다.

1.
용어정리

 

A. 페이지(Page) 

    1. 데이터를 저장하고 처리하는데 사용되는 가장 기본적인 입출력 단위이다.

    2. 저장하는 데이터와 그 내부 구성에 따라 8가지 형태로 나뉜다.

  - Data : text, ntext, image 형태를 제외한 모든 데이터 레코드

  - Index : 인덱스 데이터 저장

  - Text / Image : text, ntext, image 형태의 데이터 저장

  - GAM : Global Allocation Map, 할당된 익스텐트 정보들을 저장

  - PFS : Page Free Space, 페이지의 여유 공간 정보를 저장

  - IAM : Index Allocation Map, 테이블과 인덱스에 의해 사용되는 익스텐트 정보들을 저장


  - BCM : Bulk Changed Map, 마지막 백업 로그문 이후의 벌크 잡업에 의해 수정된 익스텐트 정보들 저장

  - DCM : Differential Changed Map, 마지막 백업 데이터베이스문 이후에 변경된 익스텐트 정보들 저장

 

B. 익스텐트(Extent)

    
1. 서버에서 테이블과 인덱스를 저장하고 관리하는데 사용되는 공간의 기본 할당 단위이다.
     2. 연속된 8개의 페이지들로 이루어져 있다.
     3. 구성된 페이지 종류에 따라 혼합 익스텐트(Mixed Extent)와 단일 익스텐트(Uniform Extent)로 나뉜다.

 

C. 인덱스

  1. 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. ( 책 뒷부분에 있는 색인과 같은 역할 )

  2. 잦은 데이터의 변경 작업 ( INSERT, UPDATE, DELETE ) 시에 성능이 나빠지는 단점이 있다.

  3. 테이블의 하나 이상의 필드를 인덱스 필드로 지정할 수 있다.

 

- 클러스터드 인덱스 : Clustered Index, 단순하게 영어사전 처럼 구성된 책과 같다.
    영어사전과 같이 책의 내용 자체가 순서대로 정렬이 되어 있어서 인덱스 자체가 책의 내용과 같다.
    클러스터드 인덱스로 만들어진 클러스터드 인덱스 테이블은 "인덱스 순서 = 물리적인 페이지 순서"
    라는 말이다. 인덱스 순서와 물리적인 데이터 페이지 순서가 동일하므로 데이터를 검색할 때 가장
    빠를 수 밖에 없다.

- 비클러스터드 인덱스 : Non-Clustered Index, 그냥 색인이 있는 일반 책과 같다. 인덱스가 별도로 있고
    인덱스를 찾은 후에 기재된 해당 페이지로 가야만 ( Lookup ) 실제 내용을 접할 수 있다.

- : Heap, 데이터를 아무런 순서 없이 저장한느 형태, 비클러스터드 인덱스를 사용하거나 인덱스가
    없는 경우, 즉 클러스터드 인덱스가 아닌 경우 이다.
    힙 형태인 경우 해당 데이터 페이지들간에 아무련 연관이 존재하지 않는다. 따라서 전체 데이터
    페이지들을 풀 스캔(Full Scan)할 수 밖에 없다.


YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/SilverLight 2009. 12. 9. 00:56
[Micorsoft] http://seadragon.com/ : 인터넷상 고해상도 이미지 공유지원 사이트
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/DB 2009. 9. 16. 17:54
Server 2005] OUTPUT 절(Transact-SQL)

INSERT, UPDATE, DELETE와 같은 DML작업을 수행할 때 변경된 내용만 알고 싶을때 난감할 때가 있다.

이전에는 INSERT된 결과를 구할때 IDENTITY속성의 필드를 INSERT전후로 비교하여 결과를 얻어 냈다면
(테이블에 Lock을 걸고...구차하게 ㅡㅡㅋ)

OUTPUT을 사용하면 DML문에 영향을 받은 각 행의 정보 또는 각 행을 바탕으로 한 식을 반환하여
결과를 테이블 또는 테이블 변수에 삽입할 수 있다.

자세한 설명은 참고 내용에서.. ^^;

[참고]
Microsoft.TechNet : http://technet.microsoft.com/ko-kr/library/ms177564(SQL.90).aspx
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/C# 2009. 9. 2. 19:29
링크 : http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx

C5 Generic Collection library를 사용하여 만들어진 App로 문자열 parsing 관련해서 좋은 참고가 된다.
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/Open API 2009. 8. 27. 13:38

링크 : http://code.google.com/intl/ko/

- 1차 -

'프로그래밍 > Open API' 카테고리의 다른 글

Google Open API (Google 코드)  (0) 2009.08.27
네이버 Open API  (0) 2009.08.27
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/Open API 2009. 8. 27. 13:30
링크 : http://dev.naver.com/projects/cubrid

- 1차 -

'프로그래밍 > Open API' 카테고리의 다른 글

Google Open API (Google 코드)  (0) 2009.08.27
네이버 Open API  (0) 2009.08.27
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST




프로그래밍/AJAX 2009. 8. 14. 19:53
Ajax를 사용하여 일정 크기 이상의 문자열을 Get방식으로 전달할때 발생하는 에러이다.

전달 방식을 Get에서 Post로 변경하면 해결은 되지만..
다른 방법은 없을까?

'프로그래밍 > AJAX' 카테고리의 다른 글

팁] HTTP Status 122 Error  (0) 2009.08.14
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST