我想编写一个查询到在我的多个SQL版本是SQL 2008 R2,SQL 2012,SQL 2014年,2016年SQL为SQL 2008 R2使用sys.dm_os_sys_info及以上
由于收集内存统计在sys.dm_os_sys_info列名称的变化,我试图绕过这一点,但无论是查询失败:
消息207,级别16,状态1,行7 无效的列名称physical_memory_kb“。
有什么建议吗?
IF (LEFT(cast(serverproperty('productVersion') as varchar(100)),2) = '10')
BEGIN
select physical_memory_in_bytes/1048576 FROM sys.dm_os_sys_info
END
ELSE
BEGIN
select physical_memory_kb/1024 FROM sys.dm_os_sys_info
END
select
CASE LEFT(cast(serverproperty('productVersion') as varchar(100)),2)
WHEN 10 Then physical_memory_in_bytes/1048576
ELSE physical_memory_kb/1024
END
FROM sys.dm_os_sys_info