TSQL을 사용하여 데이터베이스의 SQL Server 버전을 어떻게 확인합니까?
버전 #을 얻기 위한 시스템 저장 절차가 있습니까?
해라
SELECT @@VERSION
또는 SQL Server 2000 이상의 경우 다음을 구문 분석하는 것이 더 쉽습니다:)
SELECT SERVERPROPERTY('productversion')
, SERVERPROPERTY('productlevel')
, SERVERPROPERTY('edition')
보낸 사람: http://support.microsoft.com/kb/321185
@@VERSION 선택
이전 게시물인 것은 알지만 매트 로지쉬가 올린 답변에 언급된 링크(2013-12-03 현재 사망)에서 발견된 코드를 업데이트했습니다.
DECLARE @ver nvarchar(128)
SET @ver = CAST(serverproperty('ProductVersion') AS nvarchar)
SET @ver = SUBSTRING(@ver, 1, CHARINDEX('.', @ver) - 1)
IF ( @ver = '7' )
SELECT 'SQL Server 7'
ELSE IF ( @ver = '8' )
SELECT 'SQL Server 2000'
ELSE IF ( @ver = '9' )
SELECT 'SQL Server 2005'
ELSE IF ( @ver = '10' )
SELECT 'SQL Server 2008/2008 R2'
ELSE IF ( @ver = '11' )
SELECT 'SQL Server 2012'
ELSE IF ( @ver = '12' )
SELECT 'SQL Server 2014'
ELSE IF ( @ver = '13' )
SELECT 'SQL Server 2016'
ELSE IF ( @ver = '14' )
SELECT 'SQL Server 2017'
ELSE
SELECT 'Unsupported SQL Server Version'
SQL Server 2000 이상의 경우 Joe의 답변을 다음과 같이 구문 분석하는 것이 좋습니다.
declare @sqlVers numeric(4,2)
select @sqlVers = left(cast(serverproperty('productversion') as varchar), 4)
다음과 같은 결과를 제공합니다.
결과 서버 버전8.00 SQL 20009.00 SQL 200510.00 SQL 200810.50 SQL 2008 R211.00 SQL 201212.00 SQL 2014
여기에 있는 기본 버전 번호 목록 또는 여기에 있는 Microsoft의 전체 목록입니다.
버전 정보를 확인하는 데 사용할 수 있는 다른 확장 저장 프로시저가 있습니다.
exec [master].sys.[xp_msver]
CREATE FUNCTION dbo.UFN_GET_SQL_SEVER_VERSION
(
)
RETURNS sysname
AS
BEGIN
DECLARE @ServerVersion sysname, @ProductVersion sysname, @ProductLevel sysname, @Edition sysname;
SELECT @ProductVersion = CONVERT(sysname, SERVERPROPERTY('ProductVersion')),
@ProductLevel = CONVERT(sysname, SERVERPROPERTY('ProductLevel')),
@Edition = CONVERT(sysname, SERVERPROPERTY ('Edition'));
--see: http://support2.microsoft.com/kb/321185
SELECT @ServerVersion =
CASE
WHEN @ProductVersion LIKE '8.00.%' THEN 'Microsoft SQL Server 2000'
WHEN @ProductVersion LIKE '9.00.%' THEN 'Microsoft SQL Server 2005'
WHEN @ProductVersion LIKE '10.00.%' THEN 'Microsoft SQL Server 2008'
WHEN @ProductVersion LIKE '10.50.%' THEN 'Microsoft SQL Server 2008 R2'
WHEN @ProductVersion LIKE '11.0%' THEN 'Microsoft SQL Server 2012'
WHEN @ProductVersion LIKE '12.0%' THEN 'Microsoft SQL Server 2014'
END
RETURN @ServerVersion + N' ('+@ProductLevel + N'), ' + @Edition + ' - ' + @ProductVersion;
END
GO
다음은 서버가 2005년 이후인지 테스트하는 데 사용하는 스크립트의 일부입니다.
declare @isSqlServer2005 bit
select @isSqlServer2005 = case when CONVERT(int, SUBSTRING(CONVERT(varchar(15), SERVERPROPERTY('productversion')), 0, CHARINDEX('.', CONVERT(varchar(15), SERVERPROPERTY('productversion'))))) < 9 then 0 else 1 end
select @isSqlServer2005
참고: 원래 답변에서 업데이트됨(댓글 참조)
Joe의 게시물에 링크된 KB 문서는 어떤 버전의 서비스 팩이 설치되었는지 확인하는 데 유용합니다.이 기술 자료에서는 버전 번호를 특정 핫픽스 및 누적 업데이트에 매핑하지만 SQL05 SP2 이상에만 적용됩니다.
사용해 보십시오.
if (SELECT LEFT(CAST(SERVERPROPERTY('productversion') as varchar), 2)) = '10'
BEGIN
SELECT
@@SERVERNAME AS ServerName,
CASE WHEN LEFT(CAST(serverproperty('productversion') as char), 1) = 9 THEN '2005'
WHEN LEFT(CAST(serverproperty('productversion') as char), 2) = 10 THEN '2008'
WHEN LEFT(CAST(serverproperty('productversion') as char), 2) = 11 THEN '2012'
END AS MajorVersion,
SERVERPROPERTY ('productlevel') AS MinorVersion,
SERVERPROPERTY('productversion') AS FullVersion,
SERVERPROPERTY ('edition') AS Edition
주요 SQL Server 버전만 한 번에 선택:
SELECT SUBSTRING(ver, 1, CHARINDEX('.', ver) - 1)
FROM (SELECT CAST(serverproperty('ProductVersion') AS nvarchar) ver) as t
돌아온다8
SQL 2000의 경우,9
SQL 2005 등의 경우(2012년까지 테스트됨).
T-SQL의 이유로 주 버전만 원하는 경우 다음은 2000년 이후 SQL Server 버전의 연도를 제공합니다.
SELECT left(ltrim(replace(@@Version,'Microsoft SQL Server','')),4)
이 코드는 다양한 버전의 SQL Server에 대한 추가 공백과 탭을 우아하게 처리합니다.
해라
SELECT @@MICROSOFTVERSION / 0x01000000 AS MajorVersionNumber
자세한 내용은 다음을 참조하십시오.버전/판 정보를 쿼리하는 중
select substring(@@version,0,charindex(convert(varchar,SERVERPROPERTY('productversion')) ,@@version)+len(convert(varchar,SERVERPROPERTY('productversion'))))
사용해 보십시오.
SELECT @@VERSION[server], SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
사용해 보십시오.
SELECT
'the sqlserver is ' + substring(@@VERSION, 21, 5) AS [sql version]
언급URL : https://stackoverflow.com/questions/59444/how-do-you-check-what-version-of-sql-server-for-a-database-using-tsql
'programing' 카테고리의 다른 글
HTML 중첩 목록을 만드는 올바른 방법은 무엇입니까? (0) | 2023.04.27 |
---|---|
Bash 배열의 요소를 구분된 문자열로 결합하려면 어떻게 해야 합니까? (0) | 2023.04.27 |
Swift 3에서 지연을 프로그래밍하는 방법 (0) | 2023.04.27 |
아이폰 시뮬레이터가 갑자기 매우 느리게 실행되기 시작했습니다. (0) | 2023.04.27 |
postgres: 사용자를 슈퍼 유저로 업그레이드하시겠습니까? (0) | 2023.04.27 |