উত্তর:
বিপরীত ক্রমে উত্তর দিতে
আমার এসকিউএল সার্ভার স্তরটি সনাক্ত করতে আমি দুটি পৃথক ক্যোয়ারী ব্যবহার করি।
প্রথমটি হল @@ সংস্করণ । এটি সম্পর্কে দুর্দান্ত জিনিসটি এটি ওএস স্তরের তথ্যও ফিরিয়ে দেয়। এটির সাথে চ্যালেঞ্জটি হ'ল এটি পাঠ্যের একটি বড় ডাম্প এবং প্রাসঙ্গিক বিটগুলি খুঁজতে আপনাকে এটি পার্স করতে হবে।
যেমন
SELECT @@version;
/*
Microsoft SQL Server 2014 - 12.0.4416.0 (X64)
Jun 11 2015 19:18:41
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
*/
আমার পছন্দটি হ'ল ব্যবহার করা ServerProperties
যেমন আমি পৃথকভাবে উপাদানগুলি সনাক্ত করতে পারি।
SELECT
SERVERPROPERTY('productversion') AS ProductVersion
, SERVERPROPERTY ('productlevel') AS ProductLevel
, SERVERPROPERTY ('edition') AS Edition;
/*
ProductVersion ProductLevel Edition
12.0.4416.0 SP1 Developer Edition (64-bit)
*/
এমন কিছুই যা আমি সচেতন না। যদি হোস্ট ওএসের উইন্ডোজ আপডেট পরিষেবা চলমান থাকে এবং কেউ "অন্যান্য এমএস পণ্যগুলির জন্য প্যাচগুলি অন্তর্ভুক্ত করুন" নির্দিষ্ট করে থাকেন তবে আপনি এসকিউএল সার্ভারের জন্য প্যাচগুলি ইনস্টল করতে পারেন ।
তবে, আপনি যদি পেশাদার হন তবে আপনি সম্ভবত WSUS এ তালিকাভুক্ত প্যাচটির জন্য অপেক্ষা করতে আগ্রহী নন বা আপনি প্যাচটি আপনার পরিবেশের জন্য কাজ করে যাচাই করতে চান। এটি জ্ঞান বেস (কেবি) নিবন্ধগুলি এবং পরীক্ষা পড়া জড়িত হতে চলেছে।
পণ্যটিতে অন্তর্নির্মিত কোনও কিছুর অভাব, আমি sqlserverbuilds.blogspot.com উল্লেখ করছি । তবে সেখানে প্রচুর অন্যান্য সাইট রয়েছে যা প্যাচগুলির একই একীভূত তালিকা সরবরাহ করার চেষ্টা করছে, যেমন:
আমি সেই ব্লগ থেকে ডেটা নিয়েছি এবং এটিকে একটি ভিউ, ডিবিও.প্যাচলিয়েভলে রূপান্তর করেছি। এই দৃশ্যটি সমস্ত প্যাচগুলি উন্মোচিত করে। এই দৃষ্টিভঙ্গিটি কেবলমাত্র 2016 এবং 2014-র আওতায় কাটা হয়েছে, অন্যথায় আমি উত্তরের জন্য চরিত্রের সীমাটি ফুটিয়েছি।
CREATE VIEW dbo.PatchLevel
AS
-- data from http://sqlserverbuilds.blogspot.com
WITH SRC(Build,[File version],[KB / Description],[Release Date], SimpleVersion) AS
(
SELECT
CASE LEN(D.Build) - LEN(REPLACE(D.Build, '.', ''))
WHEN 3 THEN REPLACE(D.Build, '.00.', '.0.')
WHEN 2 THEN REPLACE(D.Build, '.00.', '.0.') + '.0'
END AS Build
, D.FileVersion
, D.KB
, CAST(REPLACE(D.ReleaseDate, ' *new', '') AS date) AS ReleaseDate
, CAST(LEFT(D.Build, 4) AS decimal(4,2))
FROM
(
VALUES
('13.00.500.53','2016.130.500.53','Microsoft SQL Server 2016 Community Technology Preview 2.3 (CTP2.3)','August 28, 2015 *new')
, ('13.00.407.1','2016.130.407.1','Microsoft SQL Server 2016 Community Technology Preview 2.2 (CTP2.2)','July 23, 2015')
, ('13.00.400.91','2016.130.400.91','Microsoft SQL Server 2016 Community Technology Preview 2.2 (CTP2.2) [withdrawn]','July 22, 2015')
, ('13.00.300.44','2016.130.300.444','Microsoft SQL Server 2016 Community Technology Preview 2.1 (CTP2.1)','June 24, 2015')
, ('13.00.200.172','2016.130.200.172','Microsoft SQL Server 2016 Community Technology Preview 2 (CTP2)','May 27, 2015')
, ('12.00.4427','2014.120.4427.24','3094221 Cumulative update package 3 (CU3) for SQL Server 2014 Service Pack 1','October 21, 2015 *new')
, ('12.00.4422','2014.120.4422.0','3075950 Cumulative update package 2 (CU2) for SQL Server 2014 Service Pack 1','August 17, 2015')
, ('12.00.4416','2014.120.4416.0','3067839 Cumulative update package 1 (CU1) for SQL Server 2014 Service Pack 1','June 22, 2015')
, ('12.00.4213','2014.120.4213.0','MS15-058: Description of the nonsecurity update for SQL Server 2014 Service Pack 1 GDR: July 14, 2015','July 14, 2015')
, ('12.00.4100','2014.120.4100.1','SQL Server 2014 Service Pack 1 (SP1)','May 14, 2015')
, ('12.00.4050','2014.120.4050.0','SQL Server 2014 Service Pack 1 (SP1) [withdrawn]','April 15, 2015')
, ('12.00.2556','2014.120.2556.4','3094220 Cumulative update package 10 (CU10) for SQL Server 2014','October 20, 2015 *new')
, ('12.00.2553','2014.120.2553.0','3075949 Cumulative update package 9 (CU9) for SQL Server 2014','August 17, 2015')
, ('12.00.2548','2014.120.2548.0','MS15-058: Description of the security update for SQL Server 2014 QFE: July 14, 2015','July 14, 2015')
, ('12.00.2546','2014.120.2546.0','3067836 Cumulative update package 8 (CU8) for SQL Server 2014','June 22, 2015')
, ('12.00.2506','2014.120.2506.0','3063054 Update enables Premium Storage support for Data files on Azure Storage and resolves backup failures','May 19, 2015')
, ('12.00.2505','2014.120.2505.0','3052167 FIX: Error 1205 when you execute parallel query that contains outer join operators in SQL Server 2014','May 19, 2015')
, ('12.00.2504','2014.120.2504.0','2999809 FIX: Poor performance when a query contains table joins in SQL Server 2014','May 5, 2015')
, ('12.00.2504','2014.120.2504.0','3058512 FIX: Unpivot Transformation task changes null to zero or empty strings in SSIS 2014','May 5, 2015')
, ('12.00.2495','2014.120.2495.0','3046038 Cumulative update package 7 (CU7) for SQL Server 2014','April 23, 2015')
, ('12.00.2488','2014.120.2488.0','3048751 FIX: Deadlock cannot be resolved automatically when you run a SELECT query that can result in a parallel batch-mode scan','April 1, 2015')
, ('12.00.2485','2014.120.2485.0','3043788 An on-demand hotfix update package is available for SQL Server 2014','March 16, 2015')
, ('12.00.2480','2014.120.2480.0','3031047 Cumulative update package 6 (CU6) for SQL Server 2014','February 16, 2015')
, ('12.00.2474','2014.120.2474.0','3034679 FIX: AlwaysOn availability groups are reported as NOT SYNCHRONIZING','May 15, 2015')
, ('12.00.2472','2014.120.2472.0','3032087 FIX: Cannot show requested dialog after you connect to the latest SQL Database Update V12 (preview) with SQL Server 2014','January 28, 2015')
, ('12.00.2464','2014.120.2464.0','3024815 Large query compilation waits on RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014','January 5, 2015')
, ('12.00.2456','2014.120.2456.0','3011055 Cumulative update package 5 (CU5) for SQL Server 2014','December 18, 2014')
, ('12.00.2436','2014.120.2436.0','3014867 FIX: "Remote hardening failure" exception cannot be caught and a potential data loss when you use SQL Server 2014','November 27, 2014')
, ('12.00.2430','2014.120.2430.0','2999197 Cumulative update package 4 (CU4) for SQL Server 2014','October 21, 2014')
, ('12.00.2423','2014.120.2423.0','3007050 FIX: RTDATA_LIST waits when you run natively stored procedures that encounter expected failures in SQL Server 2014','October 22, 2014')
, ('12.00.2405','2014.120.2405.0','2999809 FIX: Poor performance when a query contains table joins in SQL Server 2014','September 25, 2014')
, ('12.00.2402','2014.120.2402.0','2984923 Cumulative update package 3 (CU3) for SQL Server 2014','August 18, 2014')
, ('12.00.2381','2014.120.2381.0','2977316 MS14-044: Description of the security update for SQL Server 2014 (QFE)','August 12, 2014')
, ('12.00.2370','2014.120.2370.0','2967546 Cumulative update package 2 (CU2) for SQL Server 2014','June 27, 2014')
, ('12.00.2342','2014.120.2342.0','2931693 Cumulative update package 1 (CU1) for SQL Server 2014','April 21, 2014')
, ('12.00.2269','2014.120.2269.0','3045324 MS15-058: Description of the security update for SQL Server 2014 GDR: July 14, 2015','July 14, 2015')
, ('12.00.2254','2014.120.2254.0','2977315 MS14-044: Description of the security update for SQL Server 2014 (GDR)','August 12, 2014')
, ('12.00.2000','2014.120.2000.8','SQL Server 2014 RTM','April 1, 2014')
, ('12.00.1524','2014.120.1524.0','Microsoft SQL Server 2014 Community Technology Preview 2 (CTP2)','October 15, 2013')
) D(Build,FileVersion,KB,ReleaseDate)
)
SELECT
SRC.Build
, SRC.[File version]
, SRC.[KB / Description]
, SRC.[Release Date]
, SRC.SimpleVersion
FROM
SRC;
GO
আমার একটি দ্বিতীয় ভিউ রয়েছে, হ্যাঁ নেস্টেড ভিউ - খারাপ আমাকে, ডিবিও.মাইপ্যাচলিভেল যা আমার বর্তমান উদাহরণের সাথে তুলনা করতে এবং আউটপুট উত্পন্ন করার জন্য উপরের সংস্করণ ডেটা ব্যবহার করে তা আমাকে কীভাবে খারাপ তা জানাতে।
CREATE VIEW dbo.MyPatchLevel
AS
WITH MostRecentBuild AS
(
SELECT
SRC.Build
, SRC.[Release Date]
, SRC.SimpleVersion
, SRC.[KB / Description]
FROM
dbo.PatchLevel AS SRC
WHERE
SRC.[Release Date] =
(
SELECT
MAX(SRCI.[Release Date])
FROM
dbo.PatchLevel AS SRCI
WHERE
SRCI.SimpleVersion = SRC.SimpleVersion
)
AND
SRC.Build =
(
SELECT
MAX(SRCI.Build)
FROM
dbo.PatchLevel AS SRCI
WHERE
SRCI.SimpleVersion = SRC.SimpleVersion
AND SRCI.[Release Date] = SRC.[Release Date]
)
)
, MyVersion AS
(
SELECT
SRC.Build
, SRC.[File version]
, MRB.[KB / Description]
, SRC.[Release Date]
, D.ProductVersion
, D.ProductLevel
, D.Edition
, D.Version
, SRC.SimpleVersion
, MRB.Build AS MostRecentBuild
, MRB.[Release Date] AS MostRecentReleaseDate
FROM
dbo.PatchLevel AS SRC
INNER JOIN
(
SELECT
SERVERPROPERTY('productversion') AS ProductVersion
, SERVERPROPERTY ('productlevel') AS ProductLevel
, SERVERPROPERTY ('edition') AS Edition
, @@VERSION AS Version
)D
ON D.ProductVersion = SRC.Build
INNER JOIN
MostRecentBuild AS MRB
ON MRB.SimpleVersion = SRC.SimpleVersion
)
SELECT
MV.ProductVersion AS CurrentVersion
, MV.MostRecentBuild
, MV.[Release Date]
, MV.MostRecentReleaseDate
, DATEDIFF(DAY, MV.[Release Date], MV.MostRecentReleaseDate) AS DaysSincePatchAvailable
, MV.[File version]
, MV.ProductLevel
, MV.[KB / Description] AS [Most Recent KB / Description]
, MV.Edition
, MV.Version
, MV.SimpleVersion
, CAST(SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS sysname) AS Server
, CAST(SERVERPROPERTY('InstanceName') AS sysname) AS Instance
, CAST(SERVERPROPERTY('ServerName') AS sysname) AS ServerName
FROM
MyVersion AS MV;
GO
আমি একটি কোয়েরি চাই
SELECT
MPL.CurrentVersion
, MPL.MostRecentBuild
, MPL.[Release Date]
, MPL.MostRecentReleaseDate
, MPL.DaysSincePatchAvailable
, MPL.[Most Recent KB / Description]
FROM
dbo.MyPatchLevel AS MPL;
ফলাফল
CurrentVersion MostRecentBuild Release Date MostRecentReleaseDate DaysSincePatchAvailable Most Recent KB / Description
12.0.4416.0 12.0.4422.0 2015-06-22 2015-08-17 56 3075950 Cumulative update package 2 (CU2) for SQL Server 2014 Service Pack 1
এই ক্যোয়ারী ফলাফলগুলির সাথে সজ্জিত, আমি জানি যে আমি আপ টু ডেট আছি কিনা, কতক্ষণ ধরে আমি প্যাচ করেছি এবং কেবি কী বর্তমান প্যাচ স্থিতিতে পড়তে চলেছে।
স্ক্রিপ্টগুলি গিথুবে হোস্ট করা হয়