728x90

엔터프라이즈 관리자의 master 데이터베이스의 저장 프로시저 및 확장 저장 프로시저 폴더에서 ‘sp_’ 또는 ‘xp_’로 시작되는 수많은 시스템 저장 프로시저들을 확인할 수 있다. 시스템 저장 프로시저들은 다음과 같이 분류할 수 있다(분류명 뒤에 ‘프로시저’가 생략되어 있음).
∙ Active Directory, 카탈로그, 커서, 데이터베이스 유지 관리 계획, 분산 쿼리, 전체 텍스트 검색, 로그 전달, OLE 자동화, 복제, 보안, SQL 메일, SQL 프로필러, SQL Server 에이전트, 시스템, 웹 길잡이, XML, 일반 확장
이 중에서 가장 많이 사용하는 것이 시스템 프로시저(끝에서 네 번째)다. 이 시스템 프로시저들을 많이 알아두면 데이터베이스 구축, 시스템 관리 및 운영에 큰 도움이 된다.
지금부터 중요한 시스템 프로시저들의 구문과 간단한 설명 및 예제를 알아보기로 한다. 자세한 사항은 SQL 서버 온라인 설명서를 참고하기 바란다.


■ sp_addextendedproc

새 확장 저장 프로시저의 이름을 등록한다. 구문은 다음과 같다.

sp_addextendedproc [ @functname = ] 'procedure' , [ @dllname = ] 'dll'

다음은 xp_hello 확장 저장 프로시저를 추가하는 예제다.

USE master
EXEC sp_addextendedproc xp_hello, 'xp_hello.dll'


■ sp_addmessage

sysmessages 테이블에 새 오류 메시지를 추가한다. 구문은 다음과 같다.

sp_addmessage [ @msgnum =] msg_id , [ @severity = ] severity , [ @msgtext = ] 'msg'
  [, [@lang = ] 'language' ] [, [@with_log=] 'with_log'] [, [@replace = ] 'replace']

다음은 영어(미국)로 된 메시지를 먼저 추가한 다음, 동일한 메시지를 한국어로 추가하는 예제다.

USE master
exec sp_addmessage 50002, 16, '%d rows are in table %s', us_english, 'true', replace
exec sp_addmessage 50002, 16, '%2!의 행 개수는 %1!다.', default, 'true', replace


■ sp_addtype

사용자 정의 데이터 형식을 작성한다. 구문은 다음과 같다.

sp_addtype [ @typename = ] type,
     [ @phystype = ] system_data_type
     [ , [ @nulltype = ] 'null_type' ]
     [ , [ @owner = ] 'owner_name' ]

다음은 SQL 서버가 제공하는 varchar 데이터 형식에 기반을 둔 ssn(사회 보장 번호)이라는 사용자 정의 데이터 형식을 작성하는 예제다. ssn 데이터 형식은 11 자리수인 사회 보장 번호(999-99-9999)를 가지는 열에 사용된다. 이 열은 NULL이 될 수 없다. varchar(11)은 문장 부호(괄호)를 포함하고 있으므로 앞뒤로 작은 따옴표를 사용해야 한다.

USE master
EXEC sp_addtype ssn, 'VARCHAR(11)', 'NOT NULL'


■ sp_addumpdevice

SQL 서버에 백업 장치를 추가한다. 구문은 다음과 같다.

sp_addumpdevice [ @devtype = ] 'device_type' ,
     [ @logicalname = ] 'logical_name' ,
     [ @physicalname = ] 'physical_name'
     [ , { [ @cntrltype = ] controller_type
             | [ @devstatus = ] 'device_status'
        }
    ]

다음은 C:\Dump\Dump1.bak이라는 물리적 이름으로 MYDISKDUMP라는 디스크 백업 장치를 추가하는 예제다.

USE master
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak'


■ sp_attach_db

서버에 데이터베이스를 첨부한다. 구문은 다음과 같다.

sp_attach_db [ @dbname = ] 'dbname' , [ @filename1 = ] 'filename_n' [ ,...16 ]

다음은 현재 서버에 pubs 데이터베이스로 두 파일을 첨부하는 예제다.

EXEC sp_attach_db @dbname = N'pubs',
   @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
   @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'


■ sp_bindefault

열 또는 사용자 정의 데이터 형식에 기본값을 바인딩한다. 구문은 다음과 같다.

sp_bindefault [ @defname = ] 'default' ,
     [ @objname = ] 'object_name'
     [ , [ @futureonly = ] 'futureonly_flag' ]

today라는 기본값이 CREATE DEFAULT 문에 의해 현재 데이터베이스에 정의되었다고 가정할 때, 이 예제는 기본값을 employees 테이블의 [hire date] 열에 바인딩한다. employees 테이블에 행이 추가되고, [hire date] 열의 데이터가 제공되지 않을 때마다 열은 today라는 기본값을 사용하게 된다.

USE master
EXEC sp_bindefault 'today', 'employees.[hire date]'


■ sp_bindrule

열 또는 사용자 정의 데이터 형식에 규칙을 바인딩한다. 구문은 다음과 같다.

sp_bindrule [ @rulename = ] 'rule' ,
     [ @objname = ] 'object_name'
     [ , [ @futureonly = ] 'futureonly_flag' ]

CREATE RULE 문에 의해 현재 데이터베이스에 today라는 규칙이 작성되었다고 가정할 때, 다음은 employees 테이블의 [hire date] 열에 이 규칙을 바인딩하는 예제다. employees에 행이 추가되는 경우, [hire date] 열에 관한 데이터가 today 규칙에 맞는지 확인한다.

USE master
EXEC sp_bindrule 'today', 'employees.[hire date]'


■ sp_bindsession

같은 SQL 서버의 인스턴스에 있는 다른 트랜잭션으로의 연결을 바인딩하거나 바인딩을 해제한다. 바운딩된 연결은 ROLLBACK TRANSACTION 또는 COMMIT TRANSACTION이 발급될 때까지 두 개 이상의 연결이 같은 트랜잭션에 참가하도록 하고 트랜잭션을 공유한다. 구문은 다음과 같다.

sp_bindsession { 'bind_token' | NULL }

다음은 지정된 바인딩 토큰을 현재 세션에 바인딩하는 예제다. 참고로, 다음 예의 바인딩 토큰은 sp_bindsession을 실행하기 전에 sp_getbindtoken을 실행하여 가져왔다.

USE master
EXEC sp_bindsession 'BP9---5---->KB?-V'<>1E:H-7U-]ANZ'


■ sp_configure

현재 서버에 대한 전역 구성 설정을 표시하거나 변경한다. 구문은 다음과 같다.

sp_configure [ [ @configname = ] 'name' ] [ , [ @configvalue = ] 'value' ]

다음은 모든 구성 옵션을 설정하고 나열하는 방법을 보여 주는 예제다. 고급 구성 옵션은 먼저 show advanced option을 1로 설정함으로써 표시된다. 이렇게 변경한 다음 매개 변수 없이 sp_configure를 실행하면 모든 구성 옵션이 표시된다.

USE master
EXEC sp_configure 'show advanced option', '1'


■ sp_create_removable

이동식 미디어 데이터베이스를 작성한다. 세 개 이상(시스템 카탈로그 테이블용으로 하나, 트랜잭션 로그용으로 하나 및 데이터 테이블용으로 하나 이상)의 파일을 작성하고 이러한 파일에 데이터베이스를 놓는다. 구문은 다음과 같다.

sp_create_removable [ @dbname = ] 'dbname'
     , [ @syslogical = ] 'syslogical'
     , [ @sysphysical = ] 'sysphysical'
     , [ @syssize = ] syssize
     , [ @loglogical = ] 'loglogical'
     , [ @logphysical = ] 'logphysical'
     , [ @logsize = ] logsize
     , [ @datalogical1 = ] 'datalogical1'
     , [ @dataphysical1 = ] 'dataphysical1'
     , [ @datasize1 = ] datasize1
     ...
     , [ @datalogical16 = ] 'datalogical16'
     , [ @dataphysical16 = ] 'dataphysical16'
     , [ @datasize16 = ] datasize16 ]

다음은 데이터베이스 inventory를 이동식 데이터베이스로 만드는 것을 보여 주는 예제다.

sp_create_removable 'inventory',
   'invsys', 'c:\Program Files\Microsoft SQLServer\MSSQL\Data\invsys.mdf', 2,
   'invlog', 'c:\Program Files\Microsoft SQLServer\MSSQL\Data\invlog.ldf', 4,
   'invdata', 'c:\Program Files\Microsoft SQLServer\MSSQL\Data\invdata.ndf', 10


■ sp_dboption

데이터베이스 옵션을 표시하거나 변경한다(master 또는 tempdb 데이터베이스에서는 sp_dboption을 사용하지 말것). sp_dboption은 이전 버전과의 호환성 용도로 지원된다. 데이터베이스 옵션을 설정하려면 ALTER DATABASE를 사용한다. 구문은 다음과 같다.

sp_dboption [ [ @dbname = ] 'database' ]
     [ , [ @optname = ] 'option_name' ]
     [ , [ @optvalue = ] 'value' ]

다음은 pubs 데이터베이스를 읽기 전용으로 설정하는 예제다.

USE master
EXEC sp_dboption 'pubs', 'read only', 'TRUE'


■ sp_depends
데이터베이스 개체 종속 관계에 관한 정보(예를 들어, 테이블 또는 뷰에 종속된 뷰 및 프로시저, 뷰 및 프로시저에 종속된 테이블 또는 뷰)를 표시한다. 현재 데이터베이스 외부의 개체에 대한 참조는 보고하지 않는다. 구문은 다음과 같다.

sp_depends [ @objname = ] 'object'

다음은 Customers 테이블에 종속된 데이터베이스 개체를 나열하는 예제다.

USE Northwind
EXEC sp_depends 'Customers'


■ sp_detach_db
서버에서 데이터베이스를 분리하며, 분리하기 전에 선택적으로 모든 테이블에서 UPDATE STATISTICS를 실행한다. 구문은 다음과 같다.

sp_detach_db [ @dbname = ] 'dbname' [ , [ @skipchecks = ] 'skipchecks' ]

다음은 skipchecks를 true로 설정하여 pubs 데이터베이스를 분리하는 예제다.

EXEC sp_detach_db 'pubs', 'true'


■ sp_dropmessage
sysmessages 시스템 테이블에서 지정된 오류 메시지를 삭제한다. 구문은 다음과 같다.

sp_dropmessage [ @msgnum = ] message_number [ , [ @lang = ] 'language' ]

다음은 sysmessages에서 번호가 50001인 메시지를 삭제하는 예제다.

USE master
EXEC sp_dropmessage 50001


■ sp_droptype
systypes에서 사용자 정의 데이터 형식을 삭제한다. 구문은 다음과 같다.

sp_droptype [ @typename = ] 'type'

다음은 사용자 정의 데이터 형식인 birthday를 삭제하는 예제다. 참고로, 이 사용자 정의 데이터 형식은 반드시 이미 존재해야 하며 그렇지 않은 경우에는 오류 메시지가 반환된다.

USE master
EXEC sp_droptype 'birthday'


■ sp_executesql

여러 번 사용할 수 있거나, 동적으로 만들어진 T-SQL문 또는 일괄 처리를 실행한다. T-SQL문 또는 일괄 처리는 포함 매개 변수를 포함할 수 있다. 구문은 다음과 같다.

sp_executesql [@stmt =] stmt
[
     {, [@params =] N'@parameter_name  data_type [,...n]' }
     {, [@param1 =] 'value1' [,...n] }
]

다음은 @level이라는 포함 매개 변수를 포함한 단순 SELECT 문을 작성하고 실행하는 예제다.

execute sp_executesql
          N'select * from pubs.dbo.employee where job_lvl = @level',
          N'@level tinyint',
          @level = 35


■ sp_getbindtoken

트랜잭션에 대한 고유한 식별자를 반환한다. 이 고유한 식별자는 바인드 토큰에 참조된다. sp_getbindtoken은 클라이언트 간에 트랜잭션을 공유하는 데 사용하는 문자열 표시를 반환한다. 구문은 다음과 같다.

sp_getbindtoken [@out_token =] 'return_value' OUTPUT [, @for_xp_flag]

다음은 바인드 토큰을 가져와서 바인드 토큰의 이름을 표시하는 예제다.

DECLARE @bind_token varchar(255)
BEGIN TRAN
EXECUTE sp_getbindtoken @bind_token OUTPUT
SELECT @bind_token AS Token


■ sp_help
데이터베이스 개체(sysobjects 테이블에 나열된 모든 개체), 사용자 정의 데이터 형식 또는 SQL 서버가 공급하는 데이터 형식에 관한 정보를 보고한다. 구문은 다음과 같다.

sp_help [ [ @objname = ] name ]

다음은 sysobjects의 각 개체에 관한 정보를 나열하는 예제다.

USE master
EXEC sp_help

다음은 publishers 테이블에 관한 정보를 표시하는 예제다..

USE pubs
EXEC sp_help publishers


■ sp_helpconstraint
모든 제약 조건 유형, 사용자 정의되었거나 시스템에서 제공하는 이름, 제약 조건 유형을 정의한 열 및 제약 조건을 정의하는 표현식(DEFAULT 및 CHECK 제약 조건에만 적용)의 목록을 보고한다. 구문은 다음과 같다.

sp_helpconstraint [ @objname = ] 'table' [ , [ @nomsg = ] 'no_message' ]

다음은 authors 테이블에 관한 모든 제약 조건을 보여 주는 예제다.

USE pubs
EXEC sp_helpconstraint authors


■ sp_helpdb
지정된 데이터베이스 또는 모든 데이터베이스에 관한 정보를 보고한다. 구문은 다음과 같다.

sp_helpdb [ [ @dbname= ] 'name' ]

다음은 pubs 데이터베이스에 관한 정보를 표시하는 예제다.

exec sp_helpdb pubs

다음은 SQL 서버를 실행하고 있는 서버의 모든 데이터베이스에 관한 정보를 표시하는 예제다.

exec sp_helpdb


■ sp_helpdevice
SQL 서버 데이터베이스 파일에 관한 정보를 보고한다. sp_helpdevice는 데이터베이스 파일의 장치 용어로 사용되는 SQL Server의 이전 버전과의 호환성 용도로 사용된다. 구문은 다음과 같다.

sp_helpdevice [ [ @devname= ] 'name' ]

다음은 SQL Server의 모든 데이터베이스 장치 및 덤프 장치에 관한 정보를 보고하는 예제다.

sp_helpdevice


■ sp_helpextendedproc

현재 정의되어 있는 확장 저장 프로시저 및 프로시저(함수)가 속한 동적 연결 라이브러리의 이름을 표시한다. 구문은 다음과 같다.

sp_helpextendedproc [ [@funcname = ] 'procedure' ]

다음은 모든 확장 저장 프로시저에 관해 보고하는 예제다.

USE master
EXEC sp_helpextendedproc

다음은 xp_cmdshell 확장 저장 프로시저에 관해 보고하는 예제다.

USE master
EXEC sp_helpextendedproc xp_cmdshell


■ sp_helpfile

현재 데이터베이스와 연관된 파일의 물리적 이름 및 특성을 반환한다. 서버에 첨부하거나 서버에서 분리할 파일의 이름을 결정하는데 이 저장 프로시저를 사용한다. 구문은 다음과 같다.

sp_helpfile [ [ @filename = ] 'name' ]

다음은 pubs에 있는 파일에 관한 정보를 반환하는 예제다.

USE pubs
EXEC sp_helpfile


■ sp_helpindex

테이블 또는 뷰의 인덱스에 관한 정보를 보고한다. 구문은 다음과 같다.

sp_helpindex [ @objname = ] 'name'

다음은 sysobjects 테이블에 관한 인덱스의 유형을 보고하는 예제다.

sp_helpindex sysobjects


■ sp_helplanguage

특정한 대체 언어 또는 모든 언어에 관한 정보를 보고한다. 구문은 다음과 같다.

sp_helplanguage [ [ @language = ] 'language' ]

다음은 대체 언어인 한국어에 관한 정보를 표시하는 예제다.

sp_helplanguage korean

다음은 설치된 모든 대체 언어에 관한 정보를 표시하는 예제다.

sp_helplanguage


■ sp_helpserver
특정 원격 또는 복제 서버나 두 유형의 서버 모두에 관한 정보를 보고한다. 연결된 서버에 쿼리 작업을 하거나 접속하기 위해 서버 이름, 서버의 네트워크 이름, 서버의 복제 상태, 서버의 ID번호, 정렬 이름 및 시간 초과 값을 제공한다. 구문은 다음과 같다.

sp_helpserver [ [ @server = ] 'server' ] [ , [ @optname = ] 'option' ]
     [ , [ @show_topology = ] 'show_topology' ]

다음은 모든 서버(매개 변수 없이 sp_helpserver)에 관한 정보를 표시하는 예제다.

USE master
EXEC sp_helpserver

다음은 SEATTLE2라는 서버에 관한 모든 정보를 표시하는 예제다.

USE master
EXEC sp_helpserver 'SEATTLE2'


■ sp_helpsort

Microsoft SQL Server 정렬 순서 및 문자 집합을 표시한다.
다음은 서버의 기본 정렬 순서, 문자 집합 및 주 정렬 값의 표를 표시하는 예제다.

sp_helpsort


■ sp_helpstats

지정된 테이블의 열과 인덱스에 관한 통계 정보를 반환한다. 구문은 다음과 같다.

sp_helpstats[ @objname = ] 'object_name' [ , [ @results = ] 'value' ]

다음은 Northwind 데이터베이스에 있는 모든 사용자 테이블에 대해 적절한 모든 열에 관한 단일 열 통계를 작성한 후, Customers 테이블에서 만들어진 모든 통계 결과를 보는 예제다.

use Northwind
exec sp_createstats
exec sp_helpstats 'Customers', 'ALL'


■ sp_helptext

규칙, 기본값 또는 암호화되지 않은 저장 프로시저, 사용자 정의 함수, 트리거 또는 뷰의 텍스트를 인쇄한다. 구문은 다음과 같다.

sp_helptext [ @objname = ] 'name'

다음은 pubs 데이터베이스에 있는 employee_insupd 트리거의 텍스트를 표시하는 예제다.

USE pubs
EXEC sp_helptext 'employee_insupd'


■ sp_helptrigger

현재 데이터베이스의 지정된 테이블에서 정의된 트리거의 유형을 반환한다. 구문은 다음과 같다.

sp_helptrigger [ @tabname = ] 'table' [ , [ @triggertype = ] 'type' ]

다음은 책 판매량이 10이 되면 오류 50010을 발생시키는 sales_warn이라는 트리거를 작성한 다음, sp_helptrigger가 실행되어 sales 테이블에 있는 트리거에 관한 정보를 작성하는 예제다.

USE pubs
GO
CREATE TRIGGER sales_warn
  ON sales
  FOR INSERT, UPDATE
AS
  RAISERROR (50010, 16, 10)
GO
EXEC sp_helptrigger sales

실행결과

trigger_name  trigger_owner  isupdate  isdelete  isinsert  isafter  isinsteadof
------------- -------------- --------- --------- --------- -------- ------------
sales_warn    dbo            1         0         1         1        0


■ sp_lock

잠금 관련 정보를 보고한다. 구문은 다음과 같다.

sp_lock [[@spid1 =] 'spid1'] [,[@spid2 =] 'spid2']

다음은 현재 SQL Server에서 보유하고 있는 잠금에 관한 모든 정보를 표시하는 예제다.

USE master
EXEC sp_lock

다음은 프로세스 ID 53에 대해 잠금을 포함한 정보를 표시하는 예제다 .

USE master
EXEC sp_lock 53


■ sp_monitor
SQL 서버에 대한 통계를 표시한다. 구문은 다음과 같다.

sp_monitor

결과 집합은 다음과 같은 열을 포함한다.
last_run, current_run, seconds, cpu_busy, io_busy, idle, packets_received,
packets_sent, packet_errors, total_read, total_write, total_errors, connections

다음은 SQL Server가 얼마나 많이 사용되었는지를 보고하는 예제다.

USE master
EXEC sp_monitor


■ sp_procoption

프로시저 옵션을 설정한다. 구문은 다음과 같다.

sp_procoption [ @ProcName = ] 'procedure' , [ @OptionName = ] 'option'
     , [ @OptionValue = ] 'value'

다음은 SQL 서버 서비스가 시작될 때 저장 프로시저 msp_startup가 자동으로 실행되도록 설정하는 예제다.

sp_procoption 'msp_startup', 'startup', 'true'


■ sp_recompile

저장 프로시저 및 트리거가 다음 실행시 다시 컴파일되게 한다. 구문은 다음과 같다.

sp_recompile [ @objname = ] 'object'

다음은 titles 테이블을 사용하는 저장 프로시저 및 트리거가 다음 실행 시 다시 컴파일되게 하는 예제다.

EXEC sp_recompile titles


■ sp_rename

현재 데이터베이스에서 테이블, 열 또는 사용자 정의 데이터 형식 등의 사용자 작성 개체의 이름을 변경한다. 구문은 다음과 같다.

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
     [ , [ @objtype = ] 'object_type' ]

다음은 customers 테이블의 이름을 custs로 바꾸는 예제다.

EXEC sp_rename 'customers', 'custs'

다음은 customers 테이블의 contact title 열의 이름을 title로 바꾸는 예제다.

EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'


■ sp_renamedb

데이터베이스의 이름을 변경한다. 구문은 다음과 같다.

sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'

다음은 accounting 데이터베이스의 이름을 financial로 바꾸는 예제다.

EXEC sp_renamedb 'accounting', 'financial'


■ sp_serveroption

원격 서버 및 연결된 서버용 서버 옵션을 설정한다. SQL 서버 2000에서는 sp_serveroption을 두 가지 새로운 옵션으로 더욱 강화하였다. use remote collation 및 collation name이 그 옵션인데 연결된 서버에서의 데이터 정렬을 지원한다. 구문은 다음과 같다.

sp_serveroption [[@server =] 'server'] [@optname =] 'option_name'
     [@optvalue =] 'option_value'

다음은 다른 SQL Server인 SEATTLE3에 해당되는 연결된 서버가 로컬 SQL Server와 데이터 정렬이 호환되도록 구성하는 예제다.

USE master
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true'


■ sp_settriggerorder

테이블과 연관된 어느 사후 트리거가 처음 또는 마지막으로 시작될 것인지 지정한다. 처음과 마지막 사이에 시작되는 사후 트리거는 정의되지 않은 순서로 실행된다. 구문은 다음과 같다.

sp_settriggerorder[@triggername = ] 'triggername' [@order =] 'value' ,
[@stmttype = ] 'statement_type'

다음은 갱신 트리거 MyTrigger를 처음에 실행되도록 지정하는 예제다.

sp_settriggerorder @triggername= 'MyTrigger', @order='first', @stmttype = 'UPDATE'


■ sp_spaceused

행의 수, 예약된 디스크 공간 및 현재 데이터베이스의 테이블이 사용하는 디스크 공간을 표시하거나 전체 데이터베이스가 예약하였거나 사용하는 디스크 공간을 표시한다. 구문은 다음과 같다.

sp_spaceused [[@objname =] 'objname'] [,[@updateusage =] 'updateusage']

다음은 titles 테이블에 대해 할당된(예약된) 공간, 데이터에 필요한 공간, 인덱스에 필요한 공간 및 데이터베이스 개체에 의해 예약된 사용되지 않은 공간 등에 관해 보고하는 예제다.

USE pubs
EXEC sp_spaceused 'titles'


■ sp_tableoption

사용자 정의 테이블의 옵션 값을 설정한다. sp_tableoption은text, ntext 또는 image 열이 있는 테이블에서 text in row 기능을 설정하는 데 사용할 수 있다. 구문은 다음과 같다.

sp_tableoption [ @TableNamePattern = ] 'table' [@OptionName = ] 'option_name'
     [@OptionValue = ] 'value'

다음은 Northwind 데이터베이스에서 'orders' 테이블에 대해 'text in row' 옵션을 설정하는 예제다.

EXEC sp_tableoption 'orders', 'text in row', 'ON'

다음은 Northwind 데이터베이스에서 'orders' 테이블에 대해 'text in row' 옵션을 설정하고 인라인 제한값을 1000으로 설정하는 예제다.

EXEC sp_tableoption 'orders', 'text in row', '1000'


■ sp_unbindefault

현재 데이터베이스의 열에서 또는 사용자 정의 데이터 형식에서 기본값을 바인딩 해제(제거)한다. 구문은 다음과 같다.

sp_unbindefault [@objname =] 'object_name' [ , [ @futureonly = ] 'futureonly_flag' ]

다음은 employees 테이블의 hiredate 열에서 기본값을 바인딩 해제하는 예제다.

EXEC sp_unbindefault 'employees.hiredate'


■ sp_unbindrule

현재 데이터베이스의 열에서 또는 사용자 정의 데이터 형식에서 규칙을 바인딩 해제한다. 구문은 다음과 같다.

sp_unbindrule [ @objname = ] 'object_name' [ , [ @futureonly = ] 'futureonly_flag' ]

다음은employees 테이블의 startdate 열에서 규칙을 바인딩 해제하는 예제다.

EXEC sp_unbindrule 'employees.startdate'


■ sp_updatestats

현재 데이터베이스의 모든 사용자 정의 테이블에 대해 UPDATE STATISTICS를 실행한다. 구문은 다음과 같다.

sp_updatestats [[@resample =] 'resample']

다음은 pubs 데이터베이스의 테이블에 대한 통계를 업데이트하는 예제다.

USE pubs
EXEC sp_updatestats


■ sp_who

현재 SQL 서버 사용자 및 프로세스에 관한 정보를 제공한다. 유휴 상태가 아닌 프로세스만 반환하려면 반환되는 정보를 필터링하면 된다. 구문은 다음과 같다.

sp_who [[@login_name =] 'login']

다음은 매개 변수 없이 sp_who를 사용하여 모든 현재 사용자를 보고하는 예제다.

USE ffmaster
EXEC sp_who

 

728x90

'Developer > MS SQL' 카테고리의 다른 글

SQL Server의 트랜잭션 로그 파일 축소  (0) 2007.05.06
728x90
1.    트랜잭션 로그 파일을 백업하여 대부분의 활성 가상 로그 파일을 비활성화합니다. 이렇게 하면 나중에 비활성 가상 로그 파일을 제거할 수 있습니다. 이렇게 하려면 다음 Transact-SQL 문과 유사한 Transact-SQL 문을 실행하십시오.
BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'

참고 이 문에서 <DatabaseName>은 백업할 데이터베이스 이름의 자리 표시자이고, <BackupFile>은 백업 파일의 전체 경로에 대한 자리 표시자입니다.

예를 들어, 다음 Transact-SQL 문을 실행하십시오.
BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'

2.    트랜잭션 로그 파일을 축소합니다. 이렇게 하려면 다음 Transact-SQL 문과 유사한 Transact-SQL 문을 실행하십시오.
DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS

참고 이 문에서 <FileName>은 트랜잭션 로그 파일 이름의 자리 표시자이고, <TargetSize>는 트랜잭션 로그 파일의 대상 크기에 대한 자리 표시자입니다. 대상 크기는 합리적이어야 합니다. 예를 들어, 두 개의 가상 로그 파일보다 작은 크기로 트랜잭션 로그 파일을 축소할 수는 없습니다.
3.    DBCC SHRINKFILE 문이 트랜잭션 로그 파일을 대상 크기로 축소하지 않을 경우 1단계에서 언급한 BACKUP LOG 문을 실행하여 가상 로그 파일을 추가로 비활성화합니다.
4.    2단계에서 언급한 DBCC SHRINKFILE 문을 실행합니다. 이 작업을 수행하고 나면 트랜잭션 로그 파일이 대상 크기와 비슷해집니다.

ex) DBCC SHRINKFILE (db_Log, 1) WITH NO_INFOMSGS


출처 : http://support.microsoft.com/kb/907511
728x90

'Developer > MS SQL' 카테고리의 다른 글

MS SQL 시스템 저장 프로시저  (0) 2019.01.03

+ Recent posts