T-SQL에서 현재 인스턴스 이름을 가져 오는 방법
T-SQL 스크립트를 사용하여 현재 연결의 SQL Server 서버 및 인스턴스 이름을 어떻게 얻을 수 있습니까?
이 SO 질문 에서 답을 찾았습니다 (문자 그대로, 어떤 대답이 아니라 질문 안에 있음).
SELECT @@servername
기본 인스턴스가 아닌 한 servername \ instance를 반환합니다.
SELECT @@servicename
기본값 (MSSQLSERVER) 인 경우에도 인스턴스 이름을 반환합니다.
이것은 어떤가요:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl',
@value_name='MSSQLSERVER'
인스턴스 이름도 가져옵니다. null
기본 인스턴스를 의미합니다.
SELECT SERVERPROPERTY ('InstanceName')
http://technet.microsoft.com/en-us/library/ms174396.aspx
SELECT @@servername
데이터를 다음과 같이 제공합니다. server/instanceName
만 가져 오려면 쿼리 instanceName
를 실행해야합니다 select @@ServiceName
.
나는 이것을 찾았다:
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
그러면 서버에 설치된 모든 인스턴스 목록이 제공됩니다.
함수 의
ServerName
속성SERVERPROPERTY
과@@SERVERNAME
유사한 정보를 반환합니다. 이ServerName
속성은 함께 고유 한 서버 인스턴스를 구성하는 Windows 서버 및 인스턴스 이름을 제공합니다.@@SERVERNAME
현재 구성된 로컬 서버 이름을 제공합니다.
현재 서버의 Microsoft 예는 다음과 같습니다.
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
이 시나리오는 Windows 서버에 SQL Server의 여러 인스턴스가 설치되어 있고 클라이언트가 현재 연결에서 사용하는 동일한 인스턴스에 대한 다른 연결을 열어야 할 때 유용합니다.
인스턴스 이름에서 멈추는 이유는 무엇입니까? 다음을 사용하여 SQL Server 환경을 인벤토리 할 수 있습니다.
SELECT
SERVERPROPERTY('ServerName') AS ServerName,
SERVERPROPERTY('MachineName') AS MachineName,
CASE
WHEN SERVERPROPERTY('InstanceName') IS NULL THEN ''
ELSE SERVERPROPERTY('InstanceName')
END AS InstanceName,
'' as Port, --need to update to strip from Servername. Note: Assumes Registered Server is named with Port
SUBSTRING ( (SELECT @@VERSION),1, CHARINDEX('-',(SELECT @@VERSION))-1 ) as ProductName,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ProductMajorVersion') AS ProductMajorVersion,
SERVERPROPERTY('ProductMinorVersion') AS ProductMinorVersion,
SERVERPROPERTY('ProductBuild') AS ProductBuild,
SERVERPROPERTY('Edition') AS Edition,
CASE SERVERPROPERTY('EngineEdition')
WHEN 1 THEN 'PERSONAL'
WHEN 2 THEN 'STANDARD'
WHEN 3 THEN 'ENTERPRISE'
WHEN 4 THEN 'EXPRESS'
WHEN 5 THEN 'SQL DATABASE'
WHEN 6 THEN 'SQL DATAWAREHOUSE'
END AS EngineEdition,
CASE SERVERPROPERTY('IsHadrEnabled')
WHEN 0 THEN 'The Always On Availability Groups feature is disabled'
WHEN 1 THEN 'The Always On Availability Groups feature is enabled'
ELSE 'Not applicable'
END AS HadrEnabled,
CASE SERVERPROPERTY('HadrManagerStatus')
WHEN 0 THEN 'Not started, pending communication'
WHEN 1 THEN 'Started and running'
WHEN 2 THEN 'Not started and failed'
ELSE 'Not applicable'
END AS HadrManagerStatus,
CASE SERVERPROPERTY('IsSingleUser') WHEN 0 THEN 'No' ELSE 'Yes' END AS InSingleUserMode,
CASE SERVERPROPERTY('IsClustered')
WHEN 1 THEN 'Clustered'
WHEN 0 THEN 'Not Clustered'
ELSE 'Not applicable'
END AS IsClustered,
'' as ServerEnvironment,
'' as ServerStatus,
'' as Comments
레지스트리 쿼리에 대한 설명을 추가하기 위해. 현재 인스턴스에 대해 일치하는 비트 (32 또는 64)의 인스턴스 만 나열합니다.
64 비트 OS에서 32 비트 SQL 인스턴스의 실제 레지스트리 키는 다음과 같습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
You can query this on a 64-bit instance to get all 32-bit instances as well. The 32-bit instance seems restricted to the Wow6432Node so cannot read the 64-bit registry tree.
another method to find Instance name- Right clck on Database name and select Properties, in this part you can see view connection properties in left down corner, click that then you can see the Instance name.
참고URL : https://stackoverflow.com/questions/18070177/how-to-get-current-instance-name-from-t-sql
'programing' 카테고리의 다른 글
Zsh로 iTerm2 시작하기 (0) | 2020.10.18 |
---|---|
Joda-Time DateTime에 하루 추가 (0) | 2020.10.18 |
Browserify-브라우저에서 browserify를 통해 생성 된 파일에 번들 된 함수를 호출하는 방법 (0) | 2020.10.18 |
핵심 데이터 배경 컨텍스트 모범 사례 (0) | 2020.10.18 |
GCE에서 'AccessDeniedException : 403 Insufficient Permission'을 반환하는 gsutil 사본 (0) | 2020.10.18 |