If you restore a backup larger than 4 GB in SQL Server 2005 Express Edition, you will receive this error:
CREATE DATABASE or ALTER DATABASE failed because the total total size of the database will exceed your license limit of 4096 MB per database.
If you have an existing database in SQL Server 2005 Express Edition and suddendly exceeds 4 GB, you will get this error:
Failed to allocate a new page for the database 'YourDatabaseName due to insufficient disk space in the file group' YourFilegroup. Create the necessary space by dropping objects in the file group, adding additional files to the file group, or setting autorun for existing files in the file group.
So the answer is NO. The database size limit parameter is defined in sqlservr.exe. If you cannot recompile the source code, you cannot get it through TSQL.
Inspired by the suggestions of @Kevin Ross and @Damien_The_Unbeliever:
SELECT CASE WHEN SERVERPROPERTY ('EngineEdition') = 4 -- 4 = Express Edition THEN CASE WHEN (SELECT max_size FROM sys.database_files WHERE file_id =1)=-1 THEN CASE WHEN CONVERT(REAL,CONVERT(VARCHAR(5),SUBSTRING(CONVERT(VARCHAR(5),SERVERPROPERTY('productversion')), 1, CHARINDEX('.', CONVERT(VARCHAR(5),SERVERPROPERTY('productversion')))-1))) < 10.5 -- Not SQL Server R2 THEN 'You have got ' + CONVERT(VARCHAR(38), (SELECT 4096-size/128 FROM sys.database_files WHERE file_id =1)) +' Mb ' +'(' + CONVERT(VARCHAR(38), CONVERT(int, 100*CONVERT(float, (SELECT 4096 - size/128 FROM sys.database_files WHERE file_id =1)) / 4096)) + '%) available.' + ' You may increase your database size up to 4Gb.' ELSE -- You have got SQL Server R2 'You have got ' + CONVERT(VARCHAR(38), (SELECT 10240-size/128 FROM sys.database_files WHERE file_id =1)) +' Mb' +'(' + CONVERT(VARCHAR(38), CONVERT(int, 100*CONVERT(float, (SELECT 10240 - size/128 FROM sys.database_files WHERE file_id =1)) / 10240)) + '%) available.' + ' You may increase your database size up to 10Gb.' END ELSE CASE WHEN CONVERT(REAL,CONVERT(VARCHAR(5),SUBSTRING(CONVERT(VARCHAR(5),SERVERPROPERTY('productversion')), 1, CHARINDEX('.', CONVERT(VARCHAR(5),SERVERPROPERTY('productversion')))-1))) < 10.5 -- Not SQL Server R2 THEN 'You have got ' + CONVERT(VARCHAR(38), (SELECT max_size - size FROM sys.database_files WHERE file_id =1)/128) +' Mb left out of ' +' Mb (' + CONVERT(VARCHAR(38), CONVERT(int, 100*CONVERT(float, (SELECT max_size - size FROM sys.database_files WHERE file_id =1)) / CONVERT(float,(SELECT max_size FROM sys.database_files WHERE file_id =1)))) + '%).' + ' You may increase your database size up to 4Gb.' ELSE -- You have got SQL Server R2 'You have got ' + CONVERT(VARCHAR(38), (SELECT max_size - size FROM sys.database_files WHERE file_id =1)/128) +' Mb left out of ' + CONVERT(VARCHAR(38), (SELECT max_size FROM sys.database_files WHERE file_id =1)/128) +' Mb (' + CONVERT(VARCHAR(38), CONVERT(int, 100*CONVERT(float, (SELECT max_size - size FROM sys.database_files WHERE file_id =1)) / CONVERT(float,(SELECT max_size FROM sys.database_files WHERE file_id =1)))) + '%).' + ' You may increase your database size up to 10Gb.' END END ELSE -- Congratulations! You have got something better than Express Edition! CASE WHEN (SELECT max_size FROM sys.database_files WHERE file_id =1)=-1 THEN 'Main file will grow until the disk is full.' ELSE 'You have got ' + CONVERT(VARCHAR(38), (SELECT max_size - size FROM sys.database_files WHERE file_id =1)/128) +' Mb left out of ' + CONVERT(VARCHAR(38), (SELECT max_size FROM sys.database_files WHERE file_id =1)/128) +' Mb (' + CONVERT(VARCHAR(38), CONVERT(int, 100*CONVERT(float, (SELECT max_size - size FROM sys.database_files WHERE file_id =1)) / CONVERT(float,(SELECT max_size FROM sys.database_files WHERE file_id =1)))) + '%)' END END AS Database_Info
Obviously, I did not have the opportunity to test it on SQL Server 2005-2008 R2.