是否有更简洁的方法将 EXEC sp_configure 的值获取到变量中?

fey*_*eyd 3 sql database sql-server

DECLARE @options TABLE
    (
        name nvarchar(max),
        minimum int,
        maximum int,
        config_value int,
        run_value int
    )
    -- Gets the advanced options enabled flag and sets @value accordingly
    INSERT INTO @options EXEC sp_configure @configname='show advanced options'
    DECLARE @value AS BIT = 0
    SELECT @value = config_value FROM @options
Run Code Online (Sandbox Code Playgroud)

这是可行的,但我觉得声明一个变量表只是为了保存 sp_configure 的结果以从中保存单个值是多余的。有没有更简洁的方法来做到这一点?我想做的就是将“显示高级选项”的当前值获取到变量中。我使用 Microsoft SQL 进行此查询。

use*_*983 7

您可以使用该sys.configurations对象:

SELECT [value]
FROM sys.configurations
WHERE [name] = N'show advanced options'
Run Code Online (Sandbox Code Playgroud)