我正在实现Server安全标带的自动化,我需要从@@version中提取安全公告版本
select @@version输出
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)我需要从上述输出中提取信息(KB3171021)。
这是我尝试过的
DECLARE @version NVARCHAR(400)
SELECT @version = REVERSE(SUBSTRING(@@version, 0, 50))
SELECT @version
SELECT SUBSTRING(@version, (CHARINDEX('(', REVERSE(@@VERSION))),(CHARINDEX(')', REVERSE(@@VERSION))))我没有得到想要的输出。你能帮忙吗?
发布于 2017-09-04 07:48:38
好吧,正如我在评论中所显示的rextester的链接中所示,@@version可能不包含您正在寻找的数据。
您也可能希望查看SERVERPROPERTY。
但是,如果您的系统总是包含它,那么提取它的最简单的方法就是在第二个括号中获取数据:
;WITH CTE AS
(
SELECT CHARINDEX('(', @@Version, CHARINDEX('(', @@Version) + 1) As SecondOpen,
CHARINDEX(')', @@Version, CHARINDEX(')', @@Version) + 1) As SecondClose
)
SELECT SUBSTRING(@@Version, SecondOpen + 1, SecondClose - SecondOpen - 1)
FROM CTE结果:
KB3171021您可以在rextester上看到一个现场演示。
https://stackoverflow.com/questions/46031724
复制相似问题