如何 select 一个带有变量名的数据库?

How to select a database with variable name?

我们有像

这样的数据库
S01_2017925
S01_2017926
S01_20170926_105439
S01_20170926_122707

其中 S01 是数据库的名称,20170925 是创建日期,122707 是每天一次的时间。

我想做的是 select 最后一个(当前)数据库的名称。

我试过:

select MAX(db_name()) 
from sys.databases 
where db_name() like 'S01_%'

如有任何帮助,我们将不胜感激。

你可以像这样获得最后一个 created/restored 数据库

select top 1 name 
from   sys.databases 
where  name like 'S01_%'
order by create_date desc

但我不确定这是否会为您提供当前的数据库。
为此,您当前的数据库必须是最后创建(或恢复)的数据库

您应该使用 name 列进行筛选,而不是 db_name()

select MAX(name) 
from sys.databases 
where name like 'S01_%'