다른 답변에 나와있는 것처럼, (SQL 2005 이상에서) 트릭에 대한 전역 구성 설정을 변경하는 것입니다 show advanced options
및 xp_cmdshell
에 1
순서대로.
여기에 이전 값을 유지하려면 sys.configurations
먼저 값을 읽은 다음 끝에 역순으로 적용하십시오. 불필요한 reconfigure
전화를 피할 수도 있습니다 .
declare @prevAdvancedOptions int
declare @prevXpCmdshell int
select @prevAdvancedOptions = cast(value_in_use as int) from sys.configurations where name = 'show advanced options'
select @prevXpCmdshell = cast(value_in_use as int) from sys.configurations where name = 'xp_cmdshell'
if (@prevAdvancedOptions = 0)
begin
exec sp_configure 'show advanced options', 1
reconfigure
end
if (@prevXpCmdshell = 0)
begin
exec sp_configure 'xp_cmdshell', 1
reconfigure
end
/* do work */
if (@prevXpCmdshell = 0)
begin
exec sp_configure 'xp_cmdshell', 0
reconfigure
end
if (@prevAdvancedOptions = 0)
begin
exec sp_configure 'show advanced options', 0
reconfigure
end
이것은 SQL Server 버전 2005 이상에 의존합니다 (원래 질문은 2008).