我有Microsoft SQL Server 2014 express。 我有按年份命名的数据库和" ID",例如:
2010CB
2010PL
2011CB
2011YK
2012CB
2013CB
...
20NNCB
我必须使用" CB"进行检测去年的查询,以便:
SELECT * FROM [20NNCB][.DBO].FIELD; --being NN the higher year.
任何方式?这些年份高于2000年,低于2100年。
谢谢!
答案 0 :(得分:2)
如果您只想获取数据库名称,可以使用以下内容:
SELECT TOP 1 name
FROM sys.databases
WHERE name LIKE '%CB'
ORDER BY name DESC
您可以将其分配给变量,然后根据需要使用该变量构建动态SQL。
DECLARE @dbName sysname;
DECLARE @sql nvarchar(max);
SELECT TOP 1 @dbName = name
FROM sys.databases
WHERE name LIKE '%CB'
ORDER BY name DESC
SELECT @sql = 'SELECT * FROM ' + QUOTENAME(@dbName) + '.[DBO].[TABLENAME];'
EXEC (@sql);