【问题标题】:T-sql for checking SQL Server EDITION can compress backup用于检查 SQL Server EDITION 的 T-sql 可以压缩备份
【发布时间】:2016-05-06 17:01:42
【问题描述】:

您如何检查,通过 t-sql,如果您的 SQL 服务器 edition(非版本)支持通过

压缩备份
WITH COMPRESSION

?

另外,如果只能通过以某种方式检查您的版本来做到这一点(例如:https://stackoverflow.com/a/1658724/1655580),如果针对 SQL Server 2008 R2 进行开发然后与更高版本进行比较,这种方法的可重用性如何?

我主要感兴趣的是是否有一种“直接”的方式来了解这一点,而不是通过查看版本来间接了解。

谢谢

PS:

这个

USE my_database;
GO
SELECT value 
FROM sys.configurations 
WHERE name = 'backup compression default' ;

不是我要找的东西,而是我搜索自己时唯一得到的东西。

【问题讨论】:

  • 也许这会有所帮助:sqlservercurry.com/2013/03/…
  • 我从 SELECT feature_name,feature_id FROM sys.dm_db_persisted_sku_features 一无所获;
  • 这是什么意思 - “如果数据库没有使用仅限于特定版本的功能,DMV 将不返回任何行。”?我在我的 t-sql 中使用压缩!
  • 假设您知道将来,Feature X 将在 SQL Server 2033 中可用。您希望如何检查 SQL 2014 或更早版本中是否存在该功能(通过 tsql)?
  • 我猜压缩是一个会流行一段时间的功能。

标签: sql sql-server tsql sql-server-2008-r2 backup


【解决方案1】:

我发现这个查询很棒(来自H2

SELECT ISNULL((SELECT value FROM sys.configurations WHERE name = 'backup compression default'),-1)

"如果 SQL 服务器支持备份压缩,上述查询将返回 0 或 1,否则返回 -1。"

【讨论】:

  • 将此设置为接受的答案,因为它似乎比产生错误更好的解决方案,加上投票数。
【解决方案2】:

您可以尝试使用它,看看它是否会产生错误:

exec(N'set noexec on; backup database master
to disk=''c:\backup''
WITH COMPRESSION')
print @@ERROR

如果有效,@@ERROR 将是 0。如果无效,则为155。当然,NOEXEC 表示它实际上并没有尝试运行备份操作。您可以使用类似的技术来发现任何会产生解析时间错误的功能是否可用。

【讨论】:

  • 好的,这当然是一个解决方案。如果没有其他事情发生,我可能只需要这样做。
  • 这对我不起作用。 :( 它总是在 SQL Server 2008 Express SP3 (10.0.5500.0) 上打印 0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多