能否用更简洁方式将sp_configure结果存入Microsoft SQL变量?
简化SQL Server获取"show advanced options"配置值的方法
嘿,太懂你这种感觉了——就为了拿一个配置值,还要声明个表变量、插入结果再查询,确实有点小题大做!在SQL Server里,有更清爽的方式直接把这个值存到变量里,不用搞这么多冗余操作:
最推荐的方式:直接查询系统视图sys.configurations
SQL Server把所有服务器配置项都存在sys.configurations这个系统视图里,直接查它就行,一步到位:
DECLARE @value BIT; -- 如果你要的是已配置但可能还没生效的值,用config_value SELECT @value = config_value FROM sys.configurations WHERE name = 'show advanced options'; -- 要是需要当前运行时实际生效的值,换成run_value就行 -- SELECT @value = run_value -- FROM sys.configurations -- WHERE name = 'show advanced options';
另一种方式:精简sp_configure的使用
如果你更习惯用sp_configure存储过程,其实也不用表变量,直接处理它的输出:
DECLARE @value BIT; -- 执行sp_configure获取指定配置的结果集 EXEC sp_configure 'show advanced options'; -- 从结果集中直接赋值(不过这种方法不如查视图简洁) SELECT @value = config_value FROM ( EXEC sp_configure 'show advanced options' ) AS config_results;
不过说实话,第一种查系统视图的方式是最简洁高效的,不仅代码少,可读性也更强,完全替代你原来的表变量方法没问题。
内容的提问来源于stack exchange,提问作者feyd
相关产品推荐
相关产品推荐

