Copy Table Schema and Data From One Database to Another Database in SQL Server

Posted by lossen
2019. 3. 11. 16:48 프로그래밍

Copy Table Schema and Data From One Database to Another Database in SQL Server

https://www.codeproject.com/Tips/664327/Copy-Table-Schema-and-Data-From-One-Database-to-An



select * into databaseto.dbo.emp from databasefrm.dbo.Emp




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

[WPF] Ribbon control  (0) 2019.02.11
로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08

[WPF] Ribbon control

Posted by lossen
2019. 2. 11. 13:13 프로그래밍

 WPF Ribbon 다운 로드 

https://www.microsoft.com/en-us/download/details.aspx?id=11877


설치 경로 

  •      On x86 computers, %ProgramFiles%\Microsoft Ribbon for WPF\
  •      On AMD64 computers, %ProgramFiles(x86)%\Microsoft Ribbon for WPF\


설치 경로의 DLL 파일을 찾아서 프로젝트에 참조 추가 합니다.


MSDN Documentation

 - https://docs.microsoft.com/ko-kr/previous-versions/ff799534(v=vs.110)

 - https://docs.microsoft.com/ko-kr/windows/desktop/windowsribbon/windowsribbon-stepbystep




간단한 샘플 코드

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:Custom="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon" x:Class="RB.MainWindow"

        Title="MainWindow" Width="500" Height="700">

    <Grid>

 

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto" />

            <RowDefinition Height="100" />

            <RowDefinition Height="*" />

        </Grid.RowDefinitions>

 

        <Custom:Ribbon HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0">

            <Custom:RibbonTab Header="Tab111">             

                <Custom:RibbonGroup Header="Gr1">

                    <Button Name="btnOpenFile" Click="btnOpenFile_Click">Open text</Button>

                </Custom:RibbonGroup>

 

                <Custom:RibbonGroup Header="Gr2">

                    <Button Name="btnSaveFile" Click="btnSaveFile_Click">Save text</Button>

                </Custom:RibbonGroup>

 

                <Custom:RibbonGroup Header="Gr3">

                    <Button Name="btnGridData" Click="btnGridData_Click">Grid data</Button>

                </Custom:RibbonGroup>

 

                <Custom:RibbonGroup Header="Gr4">

                    <Button Name="btnSaveGridData" Click="btnSaveGridData_Click">Save grid</Button>

                </Custom:RibbonGroup>

            </Custom:RibbonTab>

 

            <Custom:RibbonTab Header="Tab222">

                <Custom:RibbonGroup Header="Gr1">

                    <Custom:RibbonButton Label="btn11111" />

                </Custom:RibbonGroup>              

            </Custom:RibbonTab>           

        </Custom:Ribbon>

 

        <TextBox Name="txtEditor" Grid.Row="1" ScrollViewer.VerticalScrollBarVisibility="Auto" />       

 

        <DataGrid Name="dgSimple" Grid.Row="2" />

    </Grid>

</Window>


-------------------------------

public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }

 

        private void btnOpenFile_Click(object sender, RoutedEventArgs e)

        {

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";

    

            if (openFileDialog.ShowDialog() == true)

            {

                txtEditor.Text = File.ReadAllText(openFileDialog.FileName);

            }

        }

 

        private void btnSaveFile_Click(object sender, RoutedEventArgs e)

        {

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "Text file (*.txt)|*.txt|C# file (*.cs)|*.cs";

        

            if (saveFileDialog.ShowDialog() == true)

            {

                File.WriteAllText(saveFileDialog.FileName, txtEditor.Text);

            }

        }

 

        private void btnGridData_Click(object sender, RoutedEventArgs e)

        {

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "CSV files (*.csv)|*.csv";         

 

            if (openFileDialog.ShowDialog() == true)

            {

                StreamReader lObjStreamReader = new StreamReader(openFileDialog.FileName);             

                GetCSVData(lObjStreamReader);            

                lObjStreamReader.Close();

            }           

        }

 

        private void GetCSVData(StreamReader aReader)

        {

            try

            {

                DataTable dt = new DataTable();

 

                while (aReader.Peek() > 0)

                {

                    string lStrLine = aReader.ReadLine();

                    if (lStrLine == null)

                        break;

 

                    if (lStrLine.Trim() == "")

                        continue;

 

                    string[] lArrStrCells = lStrLine.Split(',');

 

                    if (dt.Columns.Count < lArrStrCells.Length)

                    {

                        for (int i = dt.Columns.Count; i < lArrStrCells.Length; i++)

                        {

                            dt.Columns.Add(lArrStrCells[i]);

                        }

                    }   

                 

                    DataRow dr = dt.NewRow();                   

                    for (int i = 0; i < lArrStrCells.Length; i++)

                    {

                        dr[i] = lArrStrCells[i];

                    }

                    dt.Rows.Add(dr);

                  

                }

                aReader.Close();

                dgSimple.ItemsSource = dt.DefaultView;

            }

            catch (Exception)

            {

            }

        }

 

        private void btnSaveGridData_Click(object sender, RoutedEventArgs e)

        {

            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "CSV file (*.csv)|*.csv";                     

 

            if (saveFileDialog.ShowDialog() == true)

            {

                dgSimple.SelectAllCells();

                dgSimple.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;

                ApplicationCommands.Copy.Execute(null, dgSimple);

                dgSimple.UnselectAllCells();

                String result = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);

                File.AppendAllText(saveFileDialog.FileName, result, UnicodeEncoding.UTF8);

            }

        }

    }





Free .NET Spreadsheet Control 

 - unvell.ReoGridWPF.dll


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

Copy Table Schema and Data From One Database to Another Database in SQL Server  (0) 2019.03.11
로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08

로또 번호 모든 경우의 수 DB에 입력하기

Posted by lossen
2019. 2. 9. 01:29 프로그래밍

--입력 - SSD 기준 54초

WITH CTE AS

(

SELECT NUMBER + 1 AS N FROM MASTER.dbo.SPT_VALUES WHERE TYPE = 'P' AND NUMBER < 45

)

SELECT

(ROW_NUMBER() OVER (ORDER BY A.N)) AS SEQ,

A.N AS [1], B.N AS [2],C.N AS [3],D.N AS [4],E.N AS [5],F.N AS [6]

INTO

TB_LT

FROM

CTE A CROSS JOIN CTE B CROSS JOIN CTE C CROSS JOIN CTE D CROSS JOIN CTE E CROSS JOIN CTE F

WHERE

B.N > A.N AND C.N > B.N AND D.N > C.N AND E.N > D.N AND F.N > E.N

ORDER BY

A.N, B.N, C.N, D.N, E.N, F.N

;


--건수 확인 - 8145060

SELECT COUNT(1) FROM TB_LT

;


--데이터 확인

SELECT TOP 1000 * FROM TB_LT

;


--랜덤 1건

SELECT TOP 1 * FROM TB_LT ORDER BY NEWID()

;


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

Copy Table Schema and Data From One Database to Another Database in SQL Server  (0) 2019.03.11
[WPF] Ribbon control  (0) 2019.02.11
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08

C# 단축키

Posted by lossen
2019. 2. 8. 13:00 프로그래밍

F9 현재 라인에 Breakpoint를 지정/해제 
Ctrl + Shift + F9 현재 Edit하고 있는 소스파일에 지정된 모든 Breakpoint 해제 
Ctrl + ] '{'괄호의 짝을 찾아줌 ('{'에 커서를 놓고 눌러야 함} 
Ctrl + J, K #ifdef 와 #endif의 짝을 찾아줌 
Ctrl + L 한 라인을 클립보드로 잘라내기 (Cut) 
Ctrl + Shift + L 한 라인을 삭제 
Alt + Mouse 블록 설정 세로로 블록 설정하기 (마우스로) 
Ctrl + Shift + F8 세로로 블록 설정하기 (키보드로), 취소할 때는 Esc키를 눌러야 함 
블록 설정 -> Tab 선택된 블록의 문자열을 일괄적으로 들여쓰기(Tab) 적용 
블록 설정 -> Shift + Tab 선택된 블록의 문자열을 일괄적으로 내어쓰기 적용 
Alt + F8 인덴트 정리. 범위 선택 후 사용하면 해당 범위를 표준 인덴트로 바꾸어줌.
Shift + F9 디버그 모드에서 해당 변수를 바로 Watch Window에 등록.
Ctrl + U 선택된 영역을 소문자로 바꿈
Ctrl + Shift + U 선택된 영역을 대문자로 바꿈 
Ctrl + Shift + 8 문단기호 표시/감추기 : Tab은 ^, Space는 .으로 표시 
Ctrl + D 툴바의 찾기 Editbox로 이동 
Ctrl + Up/Down Arrow 커서는 고정시키고 화면만 스크롤 시키기 
Shift + Alt + 커서 이동
Alt + 마우스 드래그 세로로 영역 선택
Shift + F12 선언으로 이동<?XML:NAMESPACE PREFIX = O /><?XML:NAMESPACE PREFIX = O />

=== 찾 기 ===
Ctrl +F3 현재커서의 단어 찾기
Ctrl +D 툴바의 찾기 Editbox로 이동
Ctrl + I 문자열 입력 점진적으로 문자열 찾기 (Incremental Search)
Ctrl + Shift + F3 현재 커서에 있는 문자열 찾기 backward 
SHIFT + ALT + O 프로젝트에 있는 파일 찾기 ( 비주얼 어시스트)
Alt + M 파일에서 method의 리스트를 보여준다.
Ctrl + ] '{}'괄호, #ifdef, #endif 의 짝을 찾아줌
F3 찾은 문자열에 대한 다음 문자열로 이동 (Next Search)
Ctrl + H 문자열 찾아 바꾸기 (Replace)


=== 이동 관련 ===
CTRL + PGDOWN (or END) 문서 끝
CTRL + PGUP (or HOME) 문서 처음
F12 선언부로 가기
Ctrl + F2 현재 라인에 북마크 지정/해제
F2 지정된 다음 북마크로 이동
Ctrl + Shift + F2 지정된 모든 북마크를 해제
함수간 이동

=== 주석처리 ===
Ctrl+K, Ctrl+C 선택 영역 주석 처리 (.NET 2003, 2005)
Ctrl+K, Ctrl+U 선택 영역 주석 없앰 (.NET 2003, 2005)

=== 아웃라인 ===
Ctrl+M, Ctrl+L 모든 아웃라인 보이기/숨기기 (Edit.ToggleAllOutlining)
Ctrl+M, Ctrl+M 현재 아웃라인 보이기/숨기기 (Edit.ToggleOutliningExpansion)
Ctrl+M, Ctrl+H 선택영역 아웃라인 지정(Edit.HideSelection)
Ctrl+M, Ctrl+U 현재 아웃라인 삭제 (Edit.StopHidingCurre
Ctrl+M, Ctrl+P 모든 아웃라인 삭제(Edit.StopOutlining Text Editor)

=== 기 타 ===
ALT + F7 프로젝트 속성
Shift+Alt+Enter : 전체화면 토글
Ctrl + Shift + F9 현재 Edit하고 있는 소스파일에 지정된 모든 Breakpoint 해제

디버그 모드에서 Watch Window에서 추가하고픈 변수나 등등 앞에 커서를 위치 시킨후 Shift + F9

☆☆ Studio 단축키 ☆☆


♣ 일반 단축키
- 모두 저장 : Ctrl + Shift + S
- 문서창 닫기 : Ctrl + F4
- 다음 문서 : Ctrl + F6, 이전 문서 : Ctrl + Shift + F6
- 다음 도구 : Alt + F6
- 들여 쓰기 : Teb, 내어 쓰기 : Shift + Teb
- 주석 달기 : Ctrl + E + C, 주석 해제 : Ctrl + E + U
- 파일에서 찾기 : Ctrl + Shift + F, 중단 : Alt + F3, S
- 찾기 이전으로 : Ctrl + F3, 다음으로 : Shift + F3
- 증분검색 정방향 : Ctrl + I, 역방향 : Ctrl + Shift + I
- 문서 끝 : Ctrl + End, 시작 : Ctrl + Home, 행 이동 : Ctrl + G
- 자동 줄바꿈 : Ctrl + E, W
- 공백 보기 : Ctrl + E, S, 가로 공백 삭제 : Ctrl + E, \
- #region 펼치기 & 접기 : Ctrl + M, M
- 클립보드에 복사 : Ctrl + Shift + Num
- 클립보드링 순환 : Ctrl + Shift + Insert


♣ 디버그시 단축키
- 직접실행창 표시 : Ctrl + Alt + I
- 모든 중단점 지우기 : Ctrl + Shift + F9
- 중단점 추가 : Alt + F9
- 중단점 설정/해지 : F9
- 프로그램에서 사용하는 모든 모듈 보기 : Ctrl + Alt + U
- 간략한 조사식 : Ctrl + Alt + Q, Shift + F9
- 디버그 다시 시작 : Ctrl + Shift + F5
- 디버그 커서까지 실행 : Ctrl + F10
- 프로시져 단위 디버그 : F10
- 한단계씩 디버그 : F11
- 프로시져 나가기 : Shift + F11
- 디버깅 중지 : Shift + F5
- 디버그 커서까지 실행 : Ctrl + F10
- 디스어셈 플리 설정/해제 : Ctrl + F11
- 디버그 조사식 1,2,3,4 : Ctrl + Alt + W, 1, 2, 3, 4
- 디버그 하지 않고 시작 : Ctrl + F5


♣ DataBase 단축키
- 데이터베이스 선택영역 실행 : Ctrl + R, Ctrl + D
- 데이터 베이스 한 단계씩 실행 : Ctrl + D, Ctrl + S
- SQL 선택영역 실행 : Ctrl + R


♣ 도구창
- 책갈피 창 : Ctrl + W, B
- 책갈피 지정 : Ctrl + B, T
- 책갈피 이전 : Ctrl + B, P -- 다음 : Ctrl + B, N
- 모든 책갈피 지우기 : Ctrl + B, C
- 매크로 창 : Alt + F8
- 매크로 기록 : Shift + Ctrl + R

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

[WPF] Ribbon control  (0) 2019.02.11
로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08
[MS-SQL] 프로시져 내에서 특정 텍스트 검색  (0) 2019.02.08

Color chart

Posted by lossen
2019. 2. 8. 12:32 프로그래밍


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

로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Chart Control  (0) 2019.02.08
[MS-SQL] 프로시져 내에서 특정 텍스트 검색  (0) 2019.02.08
Git console command  (0) 2019.02.08

Chart Control

Posted by lossen
2019. 2. 8. 12:29 프로그래밍


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

로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
[MS-SQL] 프로시져 내에서 특정 텍스트 검색  (0) 2019.02.08
Git console command  (0) 2019.02.08

[MS-SQL] 프로시져 내에서 특정 텍스트 검색

Posted by lossen
2019. 2. 8. 12:22 프로그래밍

select syso.NAME

from syscomments sysc

     join sysobjects syso on sysc.id = syso.id

where syso.xtype='p'

      and sysc.text like '%검색 테이블, 텍스트, 함수명%'


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

로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08
Git console command  (0) 2019.02.08

Git console command

Posted by lossen
2019. 2. 8. 12:09 프로그래밍

001. 경로 이동 : cd

002. Git의 저장소로 등록 : git init

003. 폴더생성 : mkdir 폴더명

004. 상태확인 : git status

005. 파일을 인덱스에 등록 : git add <file> - 처음 한번만 인덱스에 등록하면 추적 대상으로 등록 할 수 있다. 한칸 띄어쓰기해서 여러개 파일을 한번에 지정할 수도 있다. 파라미터에 .을 지정하면 모든 파일을 인덱스에 등록 할 수 있다.

006. 새로운 원격 저장소 추가하기 : git remote add <원격 저장소> <저장소 url>  : ex) git remote add origin http://dev02:8080/tfs/DefaultCollection/_git/GIT_KEMS

007. 리포지토리 푸시 : git push <repository> <refspec> : ex) git push -u origin --all

008. 원격 저장소에서 풀 : git pull <repository> <refspec> : ex) git pull origin master

      원격 저장소에서 변경 사항을 가져와 현재 브랜치에 합치기   : git pull <원격 저장소>

      origin 저장소에서 변경 사항을 가져와 현재 브랜치에 합치기 : git pull

009. 전역 사용자명/이메일 구성하기 : git config --global user.name “Your name”

                       git config --global user.email “Your email address”

010. 저장소별 사용자명/이메일 구성하기 (해당 저장소 디렉터리로 이동후) : git config user.name “Your name”

     git config user.email “Your email address”

011. 커밋 : git commit -m "설명"

012. 파일 삭제후 복구 : git ls-files -d

           git checkout "파일명"  

     : ex) 파일을 되살린다고 ‘git pull’ 이나 ‘git fetch’를 해봐도 나오는 메시지는 최신판(Already up-to-date)라는 것이다. 먼저 삭제한 디렉토리로 이동한다. 

013. 삭제된 파일이 여러개인 경우 : git ls-files -d | xargs

                    git ls-files -d | xargs git checkout

014. 인덱스에 등록한 파일을 취소 : git reset HEAD "파일 경로+파일명"

015. 특정 코멘트를 포함한 커밋 검색 : git log --grep "코멘트"

016. 한글깨짐 

      1. 파일 생성 : $ cd /c/users/username/; touch .inputrc; 

      2. 파일 열어서 입력 (contents(.inputrc)= # git bash 한글입력 글자 사라짐) : set output-meta on

                       set convert-meta off

      3. 파일 생성 : $ cd /c/users/username/; touch .bashrc; 

      4. 파일 열어서 입력 (contents(.bashrc)= # bash ls 한글깨짐) : alias ls='ls --show-control-chars'  

      5. $ git config --global core.quotepath fasle     # git status / git commit -a 시 한글 파일명 깨짐 현상

   $ git config --global i18n.commitEncoding utf-8    # git log 한글깨짐

   $ git config --global i18n.logOutputEncoding utf-8 # git log 한글깨짐

017. 지역 브랜치 목록 보기 : git branch

018. 원격 브랜치 목록 보기 : git branch -r

019. 지역과 원격을 포함한 모든 브랜치 목록 보기 : git branch -a

020. 현재 브랜치에서 새로운 브랜치 생성하기 : git branch <새로운 브랜치>

021. 다른 브랜치 체크아웃하기 : git checkout <브랜치>

022. 현재 브랜치에서 새로운 브랜치 생성하고 체크아웃하기 : git checkout -b <새로운 브랜치>

023. 다른 시작 지점에서 브랜치 생성하기 : git branch <새로운 브랜치> <브랜치를 생성할 위치>

024. 기존의 브랜치를 새로운 브랜치로 덮어쓰기 : git branch -f <기존 브랜치> [<브랜치를 생성할 위치>]

025. 브랜치를 옮기거나 브랜치명 변경하기 : git checkout -m <기존 브랜치> <새로운 브랜치>

026. <새로운 브랜치>가 존재하지 않을 경우 : git checkout -M <기존 브랜치> <새로운 브랜치>

027. 브랜치 삭제하기 : git branch -d <삭제할 브랜치>

028. 삭제할 브랜치가 현재 브랜치에 합쳐졌을 경우에만 : git branch -D <삭제할 브랜치>

029. 원격 브랜치에서 지역 브랜치 생성하기 : git branch <새로운 브랜치> <원격 브랜치>

030. 원격 태그에서 지역 브랜치 생성하기 : git branch <새로운 브랜치> <원격 태그>


031. 저장소 복제하기 : git clone <저장소 url>  : ex) 복제란 원격 저장소의 내용을 통째로 다운로드하는 것을 말합니다. 복제한 저장소를 다른 PC에서 로컬 저장소로 사용할 수 있게 됩니다.

032. 마지막 200개의 커밋만 포함하여 저장소 복제하기 : git clone --depth 200 <저장소>


033. 모든 이력 보기 : git log

034. 변경 사항을 보여주는 패치와 함께 로그 표시하기 : git log -p

035. Log 빠져 나가기 : Q

036. 1개의 항목만 보이도록 로그 개수 제한하기 : git log -1

037. 20개의 항목과 패치만 보이도록 로그 제한하기 : git log -20 -p

038. 6개월 동안의 커밋 로그 보기 : git log --since=”6 hours”

039. 이틀 전까지의 커밋 로그 보기 : git log --before=”2 days”

040. HEAD보다 세 개 이전의 커밋 로그 보기 : git log -1 HEAD-3

                   git log -1 HEAD^^^

                         git log -1 HEAD~1^^

041. 두 지점 사이의 커밋 로그 보기 : git log <시작 지점>…<끝 지점>  : ex)시작 지점이나 끝 지점은 커밋명, 브랜치명, 혹은 태그명이 될 수 있고 조합하여 사용 가능하다.

042. 각 항목의 로그 이력 한 줄씩 보기 : git log --pretty=oneline

043. 각 항목마다 영향 받은 줄의 통계 보기 : git log --stat

044. 커밋할 시점의 파일 상태 보기 : git log --name-status


045. 원격 저장소와 로컬 저장소에 있는 파일을 삭제 : git rm "file name" 

046. 원격 저장소에 있는 파일을 삭제한다. 로컬 저장소에 있는 파일은 삭제하지 않는다 : git rm --cached "file name"

047. Log폴더 아래에 있는 .Log 확장자를 가지는 파일들을 모두 삭제 : git rm log/\*.log

048. ~로 끝나는 파일을 모두 삭제 : git rm \*~

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

로또 번호 모든 경우의 수 DB에 입력하기  (0) 2019.02.09
C# 단축키  (0) 2019.02.08
Color chart  (0) 2019.02.08
Chart Control  (0) 2019.02.08
[MS-SQL] 프로시져 내에서 특정 텍스트 검색  (0) 2019.02.08