如何验证我的 SQL Server 版本是 Express?

Mau*_*mek 3 sql-server database-size restore

我有一个 SQL Server(版本 11.0.5058)。我尝试从 bak 文件恢复数据库,但收到错误消息:

CREATE DATABASE 或 ALTER DATABASE 失败,因为产生的累积数据库大小将超过每个数据库 10240 MB 的许可限制。

有人告诉我,我没有 Express 实例,因此我没有 10GB 的数据库限制。我无法找到信息来验证这一点。虽然在Help->About下没有出现Express这个词。如何验证数据库限制信息?

可能是什么问题?这是我可以更改的配置吗?

Kin*_*hah 11

您必须检查以查看SERVERPROPERTY ('Edition') AS ServerEdition您安装的实例是 Express 版还是标准版或企业版。

您可以使用以下 T-SQL :

SELECT
   SERVERPROPERTY ('MachineName') AS PhysicalMachineName,
   SERVERPROPERTY ('ServerName') AS SQLServerName,
   SERVERPROPERTY ('Edition') AS ServerEdition,
   CAST(SUBSTRING(@@Version,charindex('SQL',@@version, 1),15) AS VARCHAR(255)) +  ' + ' 
       + CAST (SERVERPROPERTY ('productlevel')AS VARCHAR (50)) + ' + (Build'
       + CAST (SERVERPROPERTY ('ProductVersion') AS VARCHAR (50)) +')' AS ProductVersion
Run Code Online (Sandbox Code Playgroud)

另一种变体告诉您基于版本的数据库大小限制(请注意,-1 表示无限制)

SELECT
   SERVERPROPERTY ('MachineName') AS PhysicalMachineName,
   SERVERPROPERTY ('ServerName') AS SQLServerName,
   SERVERPROPERTY ('Edition') AS ServerEdition,
   CAST(SUBSTRING(@@Version,charindex('SQL',@@version, 1),15) AS VARCHAR(255)) +  ' + ' 
       + CAST (SERVERPROPERTY ('productlevel')AS VARCHAR (50)) + ' + (Build '
       + CAST (SERVERPROPERTY ('ProductVersion') AS VARCHAR (50)) +')' AS ProductVersion
    , case  when cast(SERVERPROPERTY ('Edition') as varchar(255)) like '%express%'
                then 
                    case 
                        when (
                                CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') as varchar(128)), 4) as int) >=10  -- major
                             and CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') as varchar(128)), 3) as int) in (0,50) -- minor
                              ) then 10  -- this is sql server 2008R2 and up
                        when (
                                CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') as varchar(128)), 4) as int) <= 10
                             and CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') as varchar(128)), 3) as int) < 50
                              ) then 4  -- this is sql server 2008 and less
                      end
                        else -1
        end  as EditionLimit
Run Code Online (Sandbox Code Playgroud)

从 sql server 2008R2 开始,Express 版数据库限制从 4GB 增加到 10GB

  • 嗯,这很清楚地表明我毕竟有一个 Express 版本......谢谢,@Kin (2认同)