我想要一个动态查询,可以根据当前月份连接我的表。我想为我的 FROM 和 JOIN 语句设置一个变量。
DECLARE @month_number AS VARCHAR(2);
DECLARE @table_name AS VARCHAR(15);
DECLARE @table AS VARCHAR(MAX);
SET @month_number = (SELECT month(getdate()));
SET @table_name = 'Sessions_month_'
SET @table = @table_name+@month_number;
SELECT * FROM Sessions_month_+@month_number where id = (SELECT id FROM Sessions_month_+@month_number WHERE Contact = 2);
或者我应该这样做:
我不是来判断使用动态sql是否是个好主意,而是针对你的问题,你可以使用以下代码来达到你的目标
这是一个坏主意。您将需要使用动态 SQL 来执行此操作。请注意它的性能和安全隐患。请务必通读动态 SQL 圣经以了解其优缺点: http: //www.sommarskog.se/dynamic_sql.html。
您如何使用视图,并在计划的作业中随着月份的变化更改视图的定义?您只需针对此视图执行所有查询,以确保您始终获得最新数据。
例子:
然后你的工作会做这样的事情: