블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

최근에 올라온 글



(0개 행이 영향을 받음)
메시지 916, 수준 14, 상태 1, 프로시저 usp_a, 줄 5
현재 보안 컨텍스트로는 서버 보안 주체 "minsouk-PC\minsouk"이(가) 데이터베이스 "DB2"에 액세스할 수 없습니다.
위와 같은 오류가 난다면 다음 옵션을 설정하세요!


CREATE DATABASE DB1
GO
CREATE DATABASE DB2
GO

CREATE LOGIN [USER_EXEC] WITH PASSWORD=N'1234', DEFAULT_DATABASE=[MASTER]
GO

ALTER LOGIN [USER_EXEC] ENABLE
GO

USE [DB1]
GO
CREATE USER [USER_EXEC] FOR LOGIN [USER_EXEC]
GO

USE DB1
GO

CREATE TABLE TBLX
(IDX INT)
GO

CREATE PROC USP_A
WITH EXECUTE AS OWNER
AS
SELECT * FROM DB1.DBO.TBLX
SELECT * FROM DB2.DBO.TBLX
GO

USE DB2
GO

CREATE TABLE TBLX
(IDX INT)
GO

USE DB1
GO


GRANT EXECUTE ON USP_A TO USER_EXEC
GO

ALTER DATABASE DB1 SET TRUSTWORTHY ON

--ALTER DATABASE DB1 SET TRUSTWORTHY off
GO


http://msdn.microsoft.com/en-us/library/ms187861.aspx

Posted by 보미아빠
, |

sql 8.0 은 meta data 를 고쳐야 하고
sql 9.0 이상은 설정이 가능하다.

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


DROP DATABASE DB1
GO

DROP DATABASE DB2
GO

SELECT 'KILL '+CAST(SPID AS VARCHAR) FROM SYSPROCESSES WHERE SPID > 50 AND LOGINAME ='DB1USER'

DROP LOGIN DB1USER
GO

CREATE DATABASE DB1
GO
CREATE DATABASE DB2
GO

CREATE LOGIN [DB1USER] WITH PASSWORD=N'1234', DEFAULT_DATABASE=[MASTER]
GO

ALTER LOGIN DB1USER ENABLE
GO

DENY VIEW ANY DATABASE TO DB1USER
GO

USE DB1
GO

EXEC SP_CHANGEDBOWNER 'DB1USER'
GO

-- db1user 로 로그인해보면 자기 데이터베이스만 보임
-- 아래는 참고

--grant view any database to db1user
--deny view any database to db1user
--grant view any database to public
--revoke view any database from public




열이글~


use master
go

create database db_1
create database db_2
create database db_3

 

CREATE LOGIN db_2 WITH PASSWORD='1', DEFAULT_DATABASE=db_2

 

use db_2
go
ALTER AUTHORIZATION ON DATABASE::db_2 to db_2

 

use db_3
go
ALTER AUTHORIZATION ON DATABASE::db_3 to db_2

 

use master
go

deny view any database to db_2

 

-- REVOKE VIEW ANY DATABASE FROM public 방법보다 발전(?)함.

-- 하나 계정으로 여러개 원하는 DB 목록 보이게 가능
-- 단점 하나 DB에 여러 계정 설정 불가능. master, tempdb 가 목록에 나옴.

Posted by 보미아빠
, |

1. 서버에서 할것
   freesshd setting 하기
   계정추가
   tunnel 셋팅
   방화벽 22 번 open

2. 클라이언트에서 할 것
   http://nemesis2.qx.net/pages/MyEnTunnel 에서 
      1. Click here to download the development version* (myentunnel-unicode.zip - 241 KiB)  다운로드 (프로그램은 오토런처 프로그램)
      2. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 다운로드 -> 위 프로그램이 깔린 폴더에 넣기(런처가 실행할 프로그램 (plink) 를 런처프로그램 폴더에 넣어 줘야 한다.)
      3. 셋팅 참고 http://lilymate.tistory.com/entry/MyEntunnel-%EC%84%A4%EC%A0%95-%EB%B0%A9%ED%99%94%EB%B2%BD-%EB%9B%B0%EC%96%B4%EB%84%98%EA%B8%B0
      4. explorer 에서는 아무런 셋팅 하지 않기

3. nateon 프록시 셋팅 - myentunnel 에서 셋팅한 포트와 동일하게 셋팅

4. 회사에서 nate 맘것 쓰기



 

Posted by 보미아빠
, |

눈물의 5시간 30분 ....처음치곤 좋은 성적인듯...ㅠ.ㅠ
Posted by 보미아빠
, |
Posted by 보미아빠
, |

단축키

카테고리 없음 / 2011. 1. 30. 07:53

cmd
ctrl alt shift + enter (관리자모드)
defrag e:


윈도우에서쓰는 명령어_단축키 모음(시작->실행)

 

윈도우 단축키 | Knowledge Transfer Center
2007.03.15 11:54
피렌체(youjaehak) 카페 매니저
http://cafe.naver.com/network1/173 <INPUT id="cafeurlstr" type="hidden" value="http://cafe.naver.com/network1/173" name="cafeurlstr">

[일반 명령어]

[01] calc [계산기]
[02] charmap [문자표]
[03] cleanmgr [디스크 정리]
[04] clipbrd [클립보드에 복사된 내용 표시]
[05] cmd [도스 명령 프롬프트 실행 단, 윈98은 command]
[06] control [제어판]
[07] dfrg.msc [디스크 조각모음]
[08] dxdiag [다이렉트X 진단도구 및 그래픽과 사운드의 세부정보를 보여줌]
[09] eudcedit [사용자 정의 문자 편집기]
[10] explorer [탐색기]
[11] magnify [돋보기]
[12] mobsync [동기화]
[13] msconfig [시작프로그램 제어등 많은기능 제공]
[14] msinfo32 [시스템정보]
[15] mstsc [원격 데스크톱 연결]
[16] netstat -na [현재 열린포트와 TCP/IP 프로토콜정보를 보여줌]
    열린 포트로 트라이 목마형 바이러스 침투 유무 확인 가능
[17] notepad [메모장]
[18] ntbackup [백업 및 복원 마법사]
[19] osk [화상키보드]
[20] pbrush 또는 mspaint [그림판]
[21] ping 사이트주소 [핑테스트 해당 사이트의 인터넷연결 유무 확인]
[22] regedit [레지스트리 편집기]
[23] sfc [시스템 파일 검사기]
- 시스템 파일을 검사한후 깨지거나 손실된 파일을 원본 압축파일에서 찾아서 복원시켜줌
  단, 윈2000에서는 cmd실행 후 sfc사용 - 마지막 설정된 값을 다음 윈도우부팅시 곧바로 실행됨
[24] sndrec32 [녹음기]
[25] sndvol32 [시스템 사운드 등록정보,볼륨조절]
[26] sysedit [autoexec.bat, config.sys, win.ini, system.ini 시스템구성편집기]
[27] systray [사운드 볼륨설정 노란색 스피커 아이콘을 트라이목록에 띄움]
[28] telnet open 사이트주소 [텔넷접속명령어]
[29] tourstart [윈도우 기능안내 html 문서표시]
[30] wab [주소록]
[31] winipcfg [인터넷에 접속된 자신의 아이피 주소를 보여줌 단, 윈2000은 ipconfig로 변경됨]
[32] winmine [지뢰찾기]
[33] winver [윈도우 버전확인]
[34] wmplayer [윈도우 미디어 플레이어]
[35] wordpad [워드패드]
[36] wscui.cpl [보안센터]
[37] wupdmgr [윈도우업데이트]

 
[MSC 명령어]

[01] certmgr.msc [인증서 관리]
[02] ciadv.msc [인덱싱 서비스]
[03] comexp.msc [구성 요소 서비스]
[04] compmgmt.msc [컴퓨터 관리]
[05] control userpasswords2 [사용자 계정]
[06] devmgmt.msc [장치관리자]
[07] dfrg.msc [디스크 조각 모음]
[08] diskmgmt.msc [디스크 관리]
[09] eventvwr.msc [이벤트 뷰어 (이벤트 로그)]
[10] fsmgmt.msc [공유 폴더 (공유 폴더 관리)]
[11] gpedit.msc [그룹 정책]
[12] lusrmgr.msc [로컬 사용자 및 그룹]
[13] ntmsmgr.msc [이동식 저장소]
[14] ntmsoprq.msc [이동식 저장소 운영자 요청]
[15] perfmon.msc [성능모니터뷰]
[16] rsop.msc [정책의 결과 집합]
[17] secpol.msc [로컬 보안 설정]
[18] services.msc [서비스]
[19] wmimgmt.msc [WMI(Windows Management Infrastructure) 서비스 구성]


[제어판 실행 명령어]

[01] Access.cpl [내게 필요한 옵션]
[02] appwiz.cpl [프로그램 추가/제거]
[03] bthprops.cpl [블루투스 장치 설정]
[04] control Admintools [관리도구]
[05] control Folders [폴더옵션]
[06] control Userpasswords [사용자 계정]
[07] desk.cpl [디스플레이 등록정보]
[08] firewall.cpl [Windows 방화벽]
[09] hdwwiz.cpl [새 하드웨어 추가 마법사]
[10] inetcpl.cpl [인터넷 등록정보]
[11] intl.cpl [국가 및 언어 옵션]
[12] irprops.cpl [적외선 포트 설정]
[13] joy.cpl [게임 컨트롤러]
[14] main.cpl [마우스 등록정보]
[15] mmsys.cpl [사운드 및 오디오 장치 등록정보]
[16] ncpa.cpl [네트워크 연결]
[17] netsetup.cpl [네트워크 설정 마법사]
[18] nusrmgr.cpl [사용자 계정]
[19] nwc.cpl [네트워크 게이트웨이]
[20] odbccp32.cpl [ODBC 데이터 원본 관리자]
[21] powercfg.cpl [전원 옵션 등록정보]
[22] Sapi.cpl [텍스트 음성 변환설정]
[23] sysdm.cpl [시스템 등록정보]
[24] telephon.cpl [전화 및 모뎀 옵션]
[25] timedate.cpl [날짜 및 시간 등록정보]
[26] wscui.cpl [Windwos 보안센터]
[27] wuaucpl.cpl [자동업데이트]
------------------------------------------------------------------------------------------------------------------------

1. [drwatson]
에러가 발생하여 컴을 강제 종료 시켜야할 상황등을 겪으셨다면
꼭 알고 있어야할 명령어..실행하면 에러 다이얼로그 박스를 잡아
줍니다..

2. [msconfig]
시작프로그램및 서비스를 중지 시킨다거나 하는등의
시스템 리소스 확보를 위한
윈도우의 기초적인 환경설정을 할수 있죠.

3. [netstat -na ]
현재 내컴에 접속되어 있는 IP를 출력 합니다.
부속적인 다양한 옵션이 있습니다..

4. [conf ]
원도에서 기본제공하는 원격관리 툴인
netmeeting를 실행시켜줍니다.

5. [ping] 상대방 IP로 접속이 가능한지 때려보는 명령
ping yahoo.co.kr  등.....
회선속도및 대상 컴퓨터의 OS판단이 가능함.

6. [xcopy ]
copy명령어보다 상당한 기능을 제공하는 복사명령어
하드의 OS까지 복사 가능함...
XCOPY C: D: /S/C/H/E/R/K  범용적인 옵션
예전의 98및 도스시절에 많이 쓰던 명령어 이죠..

7. [ipconfig]
명령프롬프터에서 실행시키면 내컴의 IP를 알수 있음
[config/renew] 동적 IP를 새로이 잡아줌.
[config/release] 동적 IP를 삭제함

8. [cmd] 명령 프롬프트(윈도우 도스)를 실행시키는 명령

9.  [sfc /Scannow] 
오류난 파일을 검색하여 원본으로 재 배치 할때 씁니다.

10. [regedit]
레지스트리 편집기를 실행 합니다.

11. [oobe/msoobe /a ]
원도우 정품 확인 명령어

12. [scandisk c:]
도스상의 명령어로 윈도우위 디스크 검사와 동일 합니다.

13. [ren *.txt *.bak  ]
파일명 바꾸는 도스 명령어
ren a.txt b.txt  - a.txt 파일을 b.txt 파일로 이름을 바꿈

14. [tracert 대상 사이트 주소]
예:tracert yahoo.co.kr
야후까지  경유해가는 IP를 출력해 줍니다.
(IP 를 추적할수도 있죠)

15. [shutdown -a ]
악성 바이러스및 자동종료 웜등으로 부터 자동종료를 막을때..

16. [dxdiag ]
컴의 다이렉트 x 버젼확인

17. 관리 관련 명령어
certmgr.msc : 인증서 관리

ciadv.msc : 인덱싱 서비스

compmgmt.msc : 컴퓨터 관리
   
devmgmt.msc : 장치관리자
   
diskmgmt.msc : 디스크 관리
   
dfrg.msc : 디스크 조각모음
   
eventvwr.msc : 이벤트 뷰어
   
fsmgmt.msc : 공유폴더
   
gpedit.msc : 로컬 컴퓨터 정책
   
lusrmgr.msc : 로컬 사용자 및 그룹

ntmsmgr.msc : Removable Storage

ntmsoprq.msc : 이동식 저장소 운영자 요청

perfmon.msc : 성능모니터뷰
   
rsop.msc : 정책의 결과와 집합
   
secpol.msc : 로컬 보안설정
   
services.msc : 서비스

wmimgmt.msc : WMI 서비스 구성

comexp.msc : comexp 구성 요소 서비스

control userpasswords2 : 사용자 계정

18. [deltree]
도스에서. 하위 디렉토리까지 포함하여. 삭제 가능한 명령어..
del이나 erase 보다 막강한 기능제공
(  deltree XXX  )

19. [mstsc.exe]
원격 데스크톱 연결 사용

20. [rcimlby.exe -LaunchRA]
msn 메신저로 상대에게 원격지원요구

21. 시작메뉴명령어들

Accessibility Wizard [Accwiz.exe]

Narrator [Narrator.exe ]

Address book [Wab.exe]

Notepad [Notepad.exe ]

Backup [Ntbackup.exe]

On-Screen Keyboard [Osk.exe ]

Calculator [Calc.exe]

outlook express [Msimn.exe ]

Character map [Charmap.exe]

Paint [Mspaint.exe ]

Command prompt [Cmd.exe]

Pinball [Pinball.exe ]

Data sources (ODBC) [Odbcad32.exe]

Remote Assistance [Rcimlby.exe ]

Disk cleanup [Cleanmgr.exe]

Remote Desktop Connection [Mstsc.exe ]

FreeCell [Freecell.exe]

Solitaire [Sol.exe ]

Files and Settings Transfer Wizard [Migwiz.exe]

Sound Recorder [Sndrec32.exe ]

Hearts [Mshearts.exe]

Spider Solitaire [Spider.exe ]

HyperTerminal [Hypertrm.exe]

System Information [Msinfo32.exe]

Internet Backgammon [Bckgzm.exe]

System Restore [Rstrui.exe]

Internet Checkers [Chkrzm.exe]

Tour Windows XP [Tourstart.exe ]

Internet Explorer [Iexplore.exe]

Utility Manager [Utilman.exe ]

Internet Hearts [Hrtzzm.exe]

Windows Media Player [Wmplayer.exe ]

Internet Reversi [Rvsezm.exe]

Windows Messenger [Msmsgs.exe ]

Internet Spades [Shvlzm.exe]

Windows Movie Maker [Moviemk.exe ]

Magnifier [Magnify.exe]

Windows Update [Wupdmgr.exe ]

Minesweeper [Winmine.exe]

WordPad [Wordpad.exe ]

MSN Explorer [Msn6.exe]


25. 제어판의 모듈실행명령어

[Access.cpl] 내게필요한옵션

[Mmsys.cpl] 사운드 및 오디오 장치 등록정보

[Appwiz.cpl] 프로그램추가제거

[Nusrmgr.cpl] 사용자계정

[Desk.cpl] 디스플레이등록정보

[Nwc.cpl] Client Service for NetWare

[Hdwwiz.cpl] 하드웨어추가마법사

[Odbccp32.cpl] ODBC 데이터 원본 관리자

[Inetcpl.cpl] 인터넷등록정보

[Powercfg.cpl] 전원옵션등록정보

[Intl.cpl] 국가및언어옵션

[Sysdm.cpl] 시스템등록정보

[Joy.cpl] 게임컨트롤러 

[Telephon.cpl] 전화및모뎀옵션

[Main.cpl] 마우스등록정보

[Timedate.cpl] 날짜및시간등록정보

Posted by 보미아빠
, |

split

카테고리 없음 / 2011. 1. 28. 15:14

 

IF OBJECT_ID (N'dbo.split') IS NOT NULL
    DROP FUNCTION dbo.split
GO

CREATE FUNCTION dbo.split(@b varchar(8000))
RETURNS @t table
(a int identity(1,1)
,b varchar(8000)
)
as
begin
set @b = @b + ','
declare
  @v0 varchar(8000), @v1 varchar(8000), @v2 varchar(8000), @v3 varchar(8000), @v4 varchar(8000), @v5 varchar(8000), @v6 varchar(8000), @v7 varchar(8000)
, @v8 varchar(8000), @v9 varchar(8000), @v10 varchar(8000), @v11 varchar(8000), @v12 varchar(8000), @v13 varchar(8000), @v14 varchar(8000), @v15 varchar(8000)
, @v16 varchar(8000), @v17 varchar(8000), @v18 varchar(8000), @v19 varchar(8000), @v20 varchar(8000), @v21 varchar(8000), @v22 varchar(8000), @v23 varchar(8000)
, @v24 varchar(8000), @v25 varchar(8000), @v26 varchar(8000), @v27 varchar(8000), @v28 varchar(8000), @v29 varchar(8000), @v30 varchar(8000), @v31 varchar(8000)
, @v32 varchar(8000), @v33 varchar(8000), @v34 varchar(8000), @v35 varchar(8000), @v36 varchar(8000), @v37 varchar(8000), @v38 varchar(8000), @v39 varchar(8000)
, @v40 varchar(8000), @v41 varchar(8000), @v42 varchar(8000), @v43 varchar(8000), @v44 varchar(8000), @v45 varchar(8000), @v46 varchar(8000), @v47 varchar(8000)
, @v48 varchar(8000), @v49 varchar(8000), @v50 varchar(8000), @v51 varchar(8000), @v52 varchar(8000), @v53 varchar(8000), @v54 varchar(8000), @v55 varchar(8000)
, @v56 varchar(8000), @v57 varchar(8000), @v58 varchar(8000), @v59 varchar(8000), @v60 varchar(8000), @v61 varchar(8000), @v62 varchar(8000), @v63 varchar(8000)
, @v64 varchar(8000), @v65 varchar(8000), @v66 varchar(8000), @v67 varchar(8000), @v68 varchar(8000), @v69 varchar(8000), @v70 varchar(8000), @v71 varchar(8000)
, @v72 varchar(8000), @v73 varchar(8000), @v74 varchar(8000), @v75 varchar(8000), @v76 varchar(8000), @v77 varchar(8000), @v78 varchar(8000), @v79 varchar(8000)
, @v80 varchar(8000), @v81 varchar(8000), @v82 varchar(8000), @v83 varchar(8000), @v84 varchar(8000), @v85 varchar(8000), @v86 varchar(8000), @v87 varchar(8000)
, @v88 varchar(8000), @v89 varchar(8000), @v90 varchar(8000), @v91 varchar(8000), @v92 varchar(8000), @v93 varchar(8000), @v94 varchar(8000), @v95 varchar(8000)
, @v96 varchar(8000), @v97 varchar(8000), @v98 varchar(8000), @v99 varchar(8000)

select
  @v0 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v1 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v2 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v3 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v4 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v5 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v6 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v7 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v8 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v9 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v10 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v11 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v12 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v13 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v14 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v15 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v16 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v17 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v18 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v19 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v20 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v21 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v22 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v23 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v24 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v25 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v26 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v27 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v28 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v29 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v30 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v31 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v32 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v33 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v34 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v35 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v36 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v37 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v38 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v39 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v40 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v41 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v42 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v43 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v44 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v45 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v46 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v47 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v48 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v49 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v50 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v51 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v52 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v53 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v54 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v55 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v56 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v57 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v58 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v59 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v60 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v61 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v62 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v63 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v64 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v65 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v66 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v67 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v68 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v69 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v70 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v71 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v72 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v73 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v74 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v75 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v76 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v77 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v78 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v79 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v80 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v81 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v82 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v83 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v84 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v85 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v86 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v87 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v88 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v89 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v90 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v91 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v92 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v93 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v94 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v95 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v96 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v97 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v98 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')
, @v99 = replace(left(@b, charindex (',',@b)),',',''),@b = stuff(@b,1,charindex (',',@b),'')

 

insert into @t values
 (@v0),(@v1),(@v2),(@v3),(@v4),(@v5),(@v6),(@v7),(@v8),(@v9)
,(@v10),(@v11),(@v12),(@v13),(@v14),(@v15),(@v16),(@v17),(@v18),(@v19)
,(@v20),(@v21),(@v22),(@v23),(@v24),(@v25),(@v26),(@v27),(@v28),(@v29)
,(@v30),(@v31),(@v32),(@v33),(@v34),(@v35),(@v36),(@v37),(@v38),(@v39)
,(@v40),(@v41),(@v42),(@v43),(@v44),(@v45),(@v46),(@v47),(@v48),(@v49)
,(@v50),(@v51),(@v52),(@v53),(@v54),(@v55),(@v56),(@v57),(@v58),(@v59)
,(@v60),(@v61),(@v62),(@v63),(@v64),(@v65),(@v66),(@v67),(@v68),(@v69)
,(@v70),(@v71),(@v72),(@v73),(@v74),(@v75),(@v76),(@v77),(@v78),(@v79)
,(@v80),(@v81),(@v82),(@v83),(@v84),(@v85),(@v86),(@v87),(@v88),(@v89)
,(@v90),(@v91),(@v92),(@v93),(@v94),(@v95),(@v96),(@v97),(@v98),(@v99)

 return
end
GO


declare @max_cnt int
, @a  int
set @max_cnt = 1000


while (1=1) begin
 select @a = count(*) from dbo.split('sys5,432,54,35,432,5,2436246,,236,32,5,34,543,25,5,43,5432,5,43,25,rscolsaa,a111111111a,v,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d,d,d,d,d,d,111111,,,,,,,,11111111111111111111111,111111111111111111111,11111111111111') where len(b) >0
 set @max_cnt = @max_cnt - 1
 if @max_cnt = 0 break
end

set statistics io on
set statistics profile on
set statistics io off
set statistics profile off

declare @a varchar(1000)
set @a = 'sys5,432,54,35,432,5,2436246,,236,32,5,34,543,25,5,43,5432,5,43,25,rscolsaa,a111111111a,v,d,d,d,d,d,d,d,d,d,d,d,d,d,,d,d,d,d,d,d,d,d,111111,,,,,,,,11111111111111111111111,111111111111111111111,11111111111111'
select *
  from dbo.split(@a) where len(b) >0


 

SET STATISTICS IO OFF
IF OBJECT_ID ('TBLX') IS NOT NULL
DROP TABLE TBLX
GO

CREATE TABLE TBLX
(
 IDX INT
 ,VALS VARCHAR(1000)
)
GO

IF OBJECT_ID('NUMS') IS NOT NULL
DROP TABLE NUMS
GO

CREATE TABLE NUMS (NUM INT IDENTITY PRIMARY KEY)
GO

SET NOCOUNT ON
BEGIN TRAN

WHILE 1=1
BEGIN
 INSERT NUMS DEFAULT VALUES
 IF @@IDENTITY = 8000
BREAK
END

INSERT INTO TBLX VALUES (1,'1,2,2')
INSERT INTO TBLX VALUES (2,'11,22,2223')

COMMIT TRAN

-- 동작의 핵심은 NUMS 테이블을 이용해서 모든글자를 한자 한자 모두 조인 한 후
-- 시작점과 끝점을 찾는 것이다.
-- 또한 CHARINDEX 는 시작점을 재 셋팅 할 수 있다.

-- 1단계 1번에 들어있는 VALS 는 쉼표포함 6글자 이므로 6개만큼 복제 된다.
SELECT
 *
FROM
 TBLX A
 INNER JOIN NUMS B
 ON LEN(A.VALS) >= B.NUM

-- 2단계 구분자를 찾자
-- 1번 E 에서 살펴보면 2,4,6 에 구분자가 있다는 것을 알게 되었다.
-- 또한 시작점은 NUM 컬럼의 최소값을 쓰면 되고 마지막포인트는 E 값을 쓰면 된다.
SELECT
 IDX, NUM, CHARINDEX (',',VALS+',',NUM) E, VALS
FROM
 TBLX A
 INNER JOIN NUMS B
 ON LEN(A.VALS) >= B.NUM

-- 컴마의 개수로 그룹핑하면서 시작점(NUM 의 최소값), 끝점 찾기(E)
SELECT
 IDX, MIN(NUM)S, CHARINDEX (',',VALS+',',NUM) E, MAX(VALS)
FROM
 TBLX A
 INNER JOIN NUMS B
 ON LEN(A.VALS) >= B.NUM
GROUP BY IDX, CHARINDEX (',',VALS+',',NUM)
ORDER BY IDX, E

-- 한방에 끝
SELECT
 IDX, SUBSTRING(VALS, S, E-S) VAL
FROM
 (
 SELECT
  IDX, MIN(NUM) S, CHARINDEX (',',VALS+',',NUM) E, MAX(VALS) VALS
 FROM
  TBLX A
  INNER JOIN NUMS B
  ON LEN(A.VALS) >= B.NUM
 GROUP BY IDX, CHARINDEX (',',VALS+',',NUM)
-- ORDER BY IDX, E
 ) A
ORDER BY 1

결과
-------
IDX VAL
--- ---
1 1
1 2
1 2
2 22
2 2223
2 11

 

IF OBJECT_ID('NUMS') IS NOT NULL
DROP TABLE NUMS
GO

CREATE TABLE NUMS (NUM INT IDENTITY PRIMARY KEY)
GO

SET NOCOUNT ON
BEGIN TRAN

WHILE 1=1
BEGIN
 INSERT NUMS DEFAULT VALUES
 IF @@IDENTITY = 8000
BREAK
END

COMMIT TRAN
GO


DECLARE @INPUTARRAY VARCHAR(8000)
SET @INPUTARRAY = '1,2222,2,3,1111444411'

SELECT SUBSTRING(VALS, S, E-S)
FROM
 (
 SELECT
  MIN(NUM)S, CHARINDEX (',',VALS+',',NUM) E, MAX(VALS) VALS
 FROM
  (SELECT @INPUTARRAY VALS) A
  INNER JOIN NUMS B
  ON LEN(A.VALS) >= B.NUM
 GROUP BY CHARINDEX (',',VALS+',',NUM)
 ) A
OPTION (ORDER GROUP)
GO

IF OBJECT_ID ('TBLX') IS NOT NULL
DROP TABLE TBLX
GO

CREATE TABLE TBLX
(IDX INT
, C1 VARCHAR(100)
)
GO

INSERT INTO TBLX VALUES  (1,'HAPPY')
INSERT INTO TBLX VALUES  (2,'SQLER')
GO

IF OBJECT_ID ('USP_A') IS NOT NULL
DROP PROC USP_A
GO

CREATE PROC USP_A
(@INPUTARRAY VARCHAR(8000))
AS

SELECT *
FROM DBO.TBLX
WHERE IDX IN
 (
 SELECT CAST(SUBSTRING(VALS, S, E-S) AS INT)
 FROM
  (
  SELECT
   MIN(NUM)S, CHARINDEX (',',VALS+',',NUM) E, MAX(VALS) VALS
  FROM
   (SELECT @INPUTARRAY VALS) A
   INNER JOIN DBO.NUMS B
   ON LEN(A.VALS) >= B.NUM
  GROUP BY CHARINDEX (',',VALS+',',NUM)
  ) A
 )
OPTION (ORDER GROUP)
GO

EXEC DBO.USP_A '1,2'
GO

 

 

 

 

 

SELECT A.IDX,SUBSTRING(A.VALS,B.S,B.E-B.S) VAL
  FROM TBLX A CROSS APPLY
            (SELECT TOP (8000)
                          NUM S,
                          CHARINDEX(',',A.VALS+',',NUM + 1) E
                FROM NUMS
              WHERE NUM = CHARINDEX (',',','+A.VALS,NUM)
              ORDER BY NUM) B
ORDER BY 1

 

 

 


DECLARE @INPUTARRAY VARCHAR(8000)

SET @INPUTARRAY = 'AAA,BBB.NB ,C,    FD'

SELECT A.NUM, LTRIM(RTRIM(SUBSTRING(VALS, S, E - S))) CVAL
FROM (
 SELECT
  ROW_NUMBER() OVER (ORDER BY (SELECT 1)) NUM
  ,MIN(NUM) S
  ,CHARINDEX(',', VALS + ',', NUM) E
  ,MAX(VALS) VALS
 FROM (
  SELECT @INPUTARRAY VALS
  ) A
 INNER JOIN (
  SELECT TOP 8000 ROW_NUMBER() OVER (
    ORDER BY (
      SELECT 1
      )
    ) NUM
  FROM SYSOBJECTS A
  CROSS JOIN SYSOBJECTS B
  ) B ON LEN(A.VALS) >= B.NUM
 GROUP BY CHARINDEX(',', VALS + ',', NUM)
 ) A
OPTION (ORDER GROUP)
GO

Posted by 보미아빠
, |
Posted by 보미아빠
, |


SQL Server 가 100 대 넘어가면 유지관리계획으로 관리하기 힘들다.
아래와 같은 스크립트가 도움이 될 것이다. 해당 스크립트는 변수만 셋팅하면 나머지 과정은 자동으로 처리한다.
시간이 지난 파일은 자동으로 지워준다.

오늘 올라온 질문중 백업 파일이 계속 커진다는 질문이 있었다.
이런 사람은 더 열심히 공부해야 한다.
개념을 이해하기 위해 http://www.sqlbackuprestore.com/introduction.htm 사이트를 참고해 열심히 공부한다.



 



 



USE MASTER
GO

IF OBJECT_ID('AP_DB_BACKUP') IS NULL
 EXEC ('CREATE PROC DBO.AP_DB_BACKUP AS SELECT 1 ')
GO

ALTER PROC [DBO].AP_DB_BACKUP
  @DBNAME VARCHAR(20) = 'MASTER' -- BACKUP TARGET DATABASE
, @PATH VARCHAR(100) = 'C:\BACKUP\' -- OS BACKUP PATH
, @BACKUP_TYPE VARCHAR(1) = 'F' -- F FULLBACKUP L LOGBACKUP D DIFFERENTIAL
, @BEFORE_TARGET_TIME_HH INT = 2 -- DELETE FILE BEFORE TIME HH
, @ENABLP_XP_CMDSHELL_FORCE INT = 1
, @CREATE_TARGET_FOLDER_FORCE INT = 1
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

-- SCRIPT BY MINSOUK KIM
-- MSSQL MVP, 2006~2009
-- VERSION 1.20111018
-- CAFE, WWW.SQLTAG.ORG, CAFE.NAVER.COM/SQLMVP
-- BLOG, SQLSQL.TISTORY.COM
-- TEL, 01099670955
-- MAIL, MINSOUK@HOTMAIL.COM

IF @BACKUP_TYPE = 'L'
WAITFOR DELAY '00:00:10.000'
IF @BACKUP_TYPE = 'D'
WAITFOR DELAY '00:00:05.000'

DECLARE @CAL_BEFORE_TARGET_TIME DATETIME
   , @DEL_TARGET_DEV_NAME VARCHAR(500)
   , @CUR_TARGET_DEV_NAME VARCHAR(500)
   , @DATE VARCHAR(500)
   , @TIME VARCHAR(500)
   , @PHYSICAL_NAME VARCHAR(500)
   , @TODAY VARCHAR(8)
   , @INSTANCE_NAME VARCHAR(100)
   , @XP_CMDSHELL_STATUS INT
   , @XP_CMDSHELL_CHANGE_STATUS INT
   , @CMD_STRING VARCHAR(8000)
  
SELECT @INSTANCE_NAME = REPLACE(@@SERVERNAME , '\','_')
SELECT @XP_CMDSHELL_STATUS = CAST(VALUE_IN_USE AS INT) FROM SYS.CONFIGURATIONS WHERE NAME ='XP_CMDSHELL'

IF @XP_CMDSHELL_STATUS = 0 AND @ENABLP_XP_CMDSHELL_FORCE = 0 BEGIN
 SELECT 'CHANGE @ENABLP_XP_CMDSHELL_FORCE PARAMETER TO 1'
 RETURN 0
END

IF @ENABLP_XP_CMDSHELL_FORCE = 1 AND @XP_CMDSHELL_STATUS = 0 BEGIN
 EXEC SP_CONFIGURE 'XP_CMDSHELL', 1
 RECONFIGURE WITH OVERRIDE
 SET @XP_CMDSHELL_CHANGE_STATUS = 1
END

IF @CREATE_TARGET_FOLDER_FORCE = 1 BEGIN
 SET @CMD_STRING ='MKDIR '+UPPER(@PATH+@INSTANCE_NAME)
 EXEC MASTER.DBO.XP_CMDSHELL @CMD_STRING, NO_OUTPUT
END


SELECT @DATE = CONVERT(VARCHAR(100), GETDATE(), 112)
  , @TIME = REPLACE(CONVERT(VARCHAR(100), GETDATE(), 108),':','')

SELECT @CAL_BEFORE_TARGET_TIME = DATEADD(HH,-1*ABS(@BEFORE_TARGET_TIME_HH),GETDATE())

DECLARE @LOG_BACKUP_DELETE_TARGET_ISDATE_TRUE TABLE
(IDX INT IDENTITY(1,1)
,NAME VARCHAR(500)
)

INSERT INTO @LOG_BACKUP_DELETE_TARGET_ISDATE_TRUE (NAME)
SELECT NAME
  FROM (SELECT TOP 100000000000 NAME -- (TOP N NO_MERGE, NO_PUSH_PRED HINT, DO NOT DELETE TOP STATEMENT!)
    FROM MASTER.DBO.SYSDEVICES
   WHERE NAME LIKE 'SQL'+@BACKUP_TYPE+'B_' +REPLACE(@@SERVERNAME,'\','_') +'_'+@DBNAME+'%'
     AND ISDATE(LEFT(RIGHT(NAME, 15),8)) = 1 ) A 
 WHERE CAST(REPLACE(STUFF(STUFF(RIGHT(NAME, 15),12,0,':'),15,0,':'),'_',' ') AS DATETIME) < @CAL_BEFORE_TARGET_TIME
 ORDER BY 1

DECLARE @MAX_IDX INT
SELECT TOP 1 @MAX_IDX = IDX
  FROM @LOG_BACKUP_DELETE_TARGET_ISDATE_TRUE
 ORDER BY IDX DESC

WHILE (@MAX_IDX > 0) BEGIN
 SELECT @DEL_TARGET_DEV_NAME = NAME
   FROM @LOG_BACKUP_DELETE_TARGET_ISDATE_TRUE
  WHERE IDX = @MAX_IDX
 IF @@ROWCOUNT = 0 BREAK;
 BEGIN TRY
  EXEC SP_DROPDEVICE @DEL_TARGET_DEV_NAME,'DELFILE' 
 END TRY BEGIN CATCH
  SELECT 'ERROR !'
 END CATCH
 SET @MAX_IDX = @MAX_IDX - 1
END

SELECT @CUR_TARGET_DEV_NAME = UPPER(
  'SQL'+@BACKUP_TYPE+'B_'
  + REPLACE(@@SERVERNAME,'\','_') + '_'
  + @DBNAME + '_'
  + @DATE+'_'
  + @TIME
  )
 
  , @PHYSICAL_NAME = UPPER(
    RTRIM(@PATH+@INSTANCE_NAME)
  + '\'
  + REPLACE(@@SERVERNAME,'\','_') + '_'
  + 'SQL'+@BACKUP_TYPE + 'B_'
  + LEFT(@DBNAME+ '_' + REPLICATE (@BACKUP_TYPE, 20),20) + '_'
  + @DATE + '_'
  + @TIME
  + '.'
  + @BACKUP_TYPE
  + 'BAK'
  )
 
SELECT @CUR_TARGET_DEV_NAME DEV_NAME
  , @PHYSICAL_NAME PATH_NAME

EXEC SP_ADDUMPDEVICE 'DISK' , @CUR_TARGET_DEV_NAME , @PHYSICAL_NAME

IF @BACKUP_TYPE = 'F'
 BACKUP DATABASE @DBNAME TO @CUR_TARGET_DEV_NAME WITH INIT
  , NAME = @CUR_TARGET_DEV_NAME
  , NOSKIP
  , NOFORMAT
  , PASSWORD = 'P@SSW0RD'
IF @BACKUP_TYPE = 'L'
 BACKUP LOG @DBNAME TO @CUR_TARGET_DEV_NAME
IF @BACKUP_TYPE = 'D'
 BACKUP DATABASE @DBNAME TO @CUR_TARGET_DEV_NAME WITH INIT
  , NAME = @CUR_TARGET_DEV_NAME
  , NOSKIP
  , NOFORMAT
  , DIFFERENTIAL
 
IF @XP_CMDSHELL_CHANGE_STATUS = 1 BEGIN
 EXEC SP_CONFIGURE 'XP_CMDSHELL', 0
 RECONFIGURE WITH OVERRIDE
END
 


go
exec ap_db_backup 'DB1','c:\backup2\','F',1









declare @BMK varchar(max)

set @BMK = 'BACKUP SERVICE MASTER KEY TO FILE = ''E:\BACKUP_SQLTAG\' + replace(@@servername,'\','_') + '.service_master.key'' ENCRYPTION BY PASSWORD = ''P@SSW0RD'''

exec (@BMK)

Posted by 보미아빠
, |


if object_id('tblx') is not null
drop table tblx
go

create table tblx
(
c1 int identity(1,1)
,c2 int
)
go

insert tblx values (1)
go 30

create clustered index cl_tblx_desc on tblx (c1 desc )
go

create nonclustered index nc_tblx_asc on tblx (c1 asc )
go

delete top (10) t from tblx t with (index(cl_tblx_desc));
go

select top 20 * from tblx order by c1 desc
go

delete top (10) t from tblx t with (index(nc_tblx_asc));
go

select top 20 * from tblx order by c1 asc
go

 

 

 

 

잘라서 지우기

drop table tblx
go

select top 100 a.* into tblx
from sys.sysobjects a
, sys.sysobjects b
, sys.sysobjects c
, sys.sysobjects d
go


while (1=1) begin
 delete a
   from (select top 1000 *
     from tblx 
    where xtype = 's') a
 if @@rowcount = 0 break
 waitfor delay '00:00:00.100'
end
go

select count(*) from tblx
go

 

아래와 같이도 된다.

delete top (1000)
from tblx
where xtype = 's'

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함