T-SQL에서 현재 인스턴스 이름을 가져오는 방법입니다.
T-SQL 스크립트를 사용하여 현재 연결의 SQL Server 및 인스턴스 이름을 가져오려면 어떻게 해야 합니까?
방금 SO 질문에서 답을 찾았습니다(문자 그대로, 어떤 답변도 아닌 질문 안에서).
SELECT @@servername
기본 인스턴스가 아닌 경우 servername\servername을 반환합니다.
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
쿼리합니다.
인스턴스 이름만 사용할 수 있습니다.다음을 사용하여 SQL 서버 환경의 인벤토리를 구성할 수 있습니다.
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
이걸 찾았어요
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
그러면 서버에 설치된 모든 인스턴스의 목록이 나타납니다.
그
ServerName
의 속성입니다.SERVERPROPERTY
기능을 합니다.@@SERVERNAME
유사한 정보를 반환합니다.그ServerName
속성은 함께 고유한 서버 인스턴스를 구성하는 윈도우즈 서버와 인스턴스 이름을 제공합니다.@@SERVERNAME
에서는 현재 구성된 로컬 서버 이름을 제공합니다.
현재 서버에 대한 마이크로소프트의 예는 다음과 같습니다.
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
이 시나리오는 윈도우즈 서버에 여러 SQL Server 인스턴스가 설치되어 있고 클라이언트가 현재 연결에 사용되는 동일한 인스턴스에 대한 다른 연결을 열어야 하는 경우에 유용합니다.
연결된 서버 및 인스턴스 목록을 가져오려면 다음과 같이 하십시오.
select * from Sys.Servers
연결된 서버에 있는 데이터베이스 목록을 가져오려면 다음과 같이 하십시오.
SELECT * from sys.databases;
레지스트리 쿼리에 설명을 추가하려고요현재 인스턴스에 대해 일치하는 비트 수(32 또는 64)의 인스턴스만 나열됩니다.
64비트 OS의 32비트 SQL 인스턴스에 대한 실제 레지스트리 키는 다음과 같습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
64비트 인스턴스에서 이를 쿼리하여 모든 32비트 인스턴스도 가져올 수 있습니다.32비트 인스턴스는 Wow6432Node로 제한되므로 64비트 레지스트리 트리를 읽을 수 없습니다.
아래와 같이 Transact-SQL(T-SQL)을 사용하여 서버 이름, 시스템 이름 및 인스턴스 이름을 얻을 수 있습니다.
SELECT @@SERVERNAME -- DESKTOP-OVPADTC\SQLEXPRESS
SELECT SERVERPROPERTY ('ServerName') -- DESKTOP-OVPADTC\SQLEXPRESS
SELECT HOST_NAME() -- DESKTOP-OVPADTC
SELECT SERVERPROPERTY ('MachineName') -- DESKTOP-OVPADTC
SELECT @@SERVICENAME -- SQLEXPRESS
SELECT SERVERPROPERTY ('InstanceName') -- SQLEXPRESS
인스턴스 이름을 찾는 다른 방법 - 데이터베이스 이름에서 오른쪽 클릭 후 속성을 선택합니다. 이 부분에서는 왼쪽 아래 모서리에서 보기 연결 속성을 볼 수 있습니다. 이 항목을 클릭하면 인스턴스 이름이 표시됩니다.
언급URL : https://stackoverflow.com/questions/18070177/how-to-get-current-instance-name-from-t-sql 입니다.
'programing' 카테고리의 다른 글
hr 요소의 색상을 변경합니다. (0) | 2023.04.25 |
---|---|
R에서 벡터와 리스트 데이터 유형의 차이점은 무엇입니까? (0) | 2023.04.25 |
복구된 레코드 : 처음부터 생성된 워크시트의 셀 정보입니다. (0) | 2023.04.25 |
명령줄에서 모든 환경 변수를 나열합니다. (0) | 2023.04.25 |
Excel 날짜를 yyymmd에서 mm/dd/yyyy로 변환합니다. (0) | 2023.04.25 |