我有一些数据库,名为db2012、db2013、db2014、db2015、db2016
我在函数中有一个select语句,如下所示
SELECT columnName1,columnName2, ... FROM [DB2015].[dbo].tableName
我每年都要把这个代码改成前一年的代码,但我想让它通用化,并自动取上一年的数据库名。我找不到解决那个问题的办法。任何帮助都将不胜感激。
最佳答案
获取当前年份和上一年,并使用动态sql更改查询。
DECLARE @CURRENTYEAR AS INT = year(getdate())
DECLARE @PREVIOUSYEAR AS INT = @CURRENTYEAR - 1
DECLARE @QUERY_ VARCHAR(2000)
SET @QUERY_ =
'SELECT
COL_1
,COL_2
...
FROM DB' + @CURRENTYEAR + '.DBO.TABLENAME
UNION ALL
SELECT
COL_1
,COL_2
...
FROM DB' + @PREVIOUSYEAR + '2015.DBO.TABLENAME'
EXEC(@QUERY_)
关于sql-server - 指定数据库名称和上一年,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36625575/