টিএসকিউএল ব্যবহার করে ডাটাবেসের জন্য এসকিউএল সার্ভারের কোন সংস্করণটি আপনি কীভাবে পরীক্ষা করতে পারেন?


উত্তর:


234

চেষ্টা

SELECT @@VERSION 

বা এসকিউএল সার্ভার 2000 এবং এর উপরের জন্য পার্স করা আরও সহজ :)

SELECT SERVERPROPERTY('productversion')
     , SERVERPROPERTY('productlevel')
     , SERVERPROPERTY('edition')

থেকে: http://support.microsoft.com/kb/321185


1
দ্বিতীয়টি আমার পক্ষে কাজ করে, এবং আমি উইকিপিডিয়ায় এটি পরীক্ষা করে যোগ করতে পারি যে 8.00.xx মানে এসকিউএল সার্ভার 2000
পিডিএম


28

আমি জানি এটি একটি পুরানো পোস্ট তবে আমি ম্যাট রোগিশ পোস্ট করা উত্তরে উল্লিখিত লিঙ্কটিতে পাওয়া কোডটি (যা ২০১২-১২-০৩ খ্রিস্টাব্দে মারা গেছে) আপডেট করেছি :

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'

14

এসকিউএল সার্ভার 2000 এবং তারপরের জন্য, আমি জোয়ের উত্তরের নিম্নলিখিত পার্সিংটি পছন্দ করি:

declare @sqlVers numeric(4,2)
select @sqlVers = left(cast(serverproperty('productversion') as varchar), 4)

নীচে ফলাফল দেয়:

সার্ভার সংস্করণ ফলাফল
8.00 এসকিউএল 2000
9.00 এসকিউএল 2005
10.00 এসকিউএল 2008
10.50 এসকিউএল 2008 আর 2
11.00 এসকিউএল 2012
12.00 এসকিউএল 2014

এখানে সংস্করণ নম্বরগুলির প্রাথমিক তালিকা , বা মাইক্রোসফ্ট থেকে সম্পূর্ণ তালিকা এখানে


আমি এটি সার্ভার সংস্করণ জুড়ে সুন্দর, সহজ এবং পুনরায় আকারে পছন্দ করি। আমি উপরের সামান্য পরিমার্জিত সংস্করণ ব্যবহৃত: select cast(serverproperty('productversion') as varchar) as [result]। আমার বক্তব্যটি হ'ল আমি উপরেরটি ADO.NET এর মাধ্যমে সম্পাদন করতে পারি ExecuteScalarএবং তারপরে ফলাফল স্ট্রিংটিকে একটি System.Versionবস্তু হিসাবে পার্স করতে পারি । এছাড়াও, এটি সংখ্যাসূচক রূপে রূপান্তর করা সংস্করণ সংখ্যার বিভিন্ন অর্থ দেয় যখন এটি পিছনের জিরো এবং সংস্করণ বিভাগের অঙ্কের গণনার ক্ষেত্রে আসে, যখন Versionপ্রতিটি সংস্করণের অংশের ধারাবাহিকতা না হারিয়ে কোনও স্ট্রিং একটি বৈধ অবজেক্টে পার্স করা যায়।
Ivaylo স্লাভভ

4
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

3

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

দ্রষ্টব্য: মূল উত্তর থেকে আপডেট হয়েছে (মন্তব্য দেখুন)


সবেমাত্র 2008 সালে এটি 103 's' এর চেয়ে কম স্কেল-এ কাজ করে না। আপনি 8, 9, 10 বা সর্বনিম্ন মান হিসাবে যা যা পরীক্ষা করতে হবে তা আপডেটের উত্তরে মান পরিবর্তন করতে পারেন
ব্রুস চ্যাপম্যান

3

এখানে আরও একটি বর্ধিত সঞ্চিত প্রক্রিয়া রয়েছে যা সংস্করণ তথ্যটি দেখতে ব্যবহার করা যেতে পারে:

exec [master].sys.[xp_msver]

2

জো এর পোস্টে লিঙ্কযুক্ত কেবি নিবন্ধটি কোনও সংস্করণের জন্য কোন পরিষেবা প্যাকগুলি ইনস্টল করা হয়েছে তা নির্ধারণের জন্য দুর্দান্ত। এই একই লাইনের পাশাপাশি, এই কেবি নিবন্ধটি নির্দিষ্ট হটফিক্স এবং সংযোজনীয় আপডেটগুলিতে সংস্করণ নম্বরগুলি মানচিত্র করে তবে এটি কেবল এসকিউএল 5 এসপি 2 এবং তার বেশি ক্ষেত্রে প্রযোজ্য।



1
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

1

একটি একক নির্বাচনে কেবলমাত্র প্রধান এসকিউএল সার্ভার সংস্করণ পাওয়া:

SELECT  SUBSTRING(ver, 1, CHARINDEX('.', ver) - 1)
FROM (SELECT CAST(serverproperty('ProductVersion') AS nvarchar) ver) as t

8এসকিউএল 2000 এর 9জন্য, এসকিউএল 2005 এবং এর জন্য (2012 পর্যন্ত পরীক্ষিত) রিটার্ন দেয় ।




0

আপনি যদি চান সমস্তই টি-এসকিউএল কারণে প্রধান সংস্করণ হয়, নিম্নলিখিতটি আপনাকে 2000 বা তার পরে এর জন্য এসকিউএল সার্ভার সংস্করণের বছর দেয়।

SELECT left(ltrim(replace(@@Version,'Microsoft SQL Server','')),4)

এই কোডটি এসকিউএল সার্ভারের বিভিন্ন সংস্করণের জন্য অতিরিক্ত স্থান এবং ট্যাবগুলি গ্রেফতার করে।


0

এটা চেষ্টা কর:

SELECT @@VERSION[server], SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

-1

এটা চেষ্টা কর:

SELECT
    'the sqlserver is ' + substring(@@VERSION, 21, 5) AS [sql version]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.