Sql server 如何更改已用对象的名称?

Sql server 如何更改已用对象的名称?,sql-server,Sql Server,我需要定义脚本中使用的对象的名称,以便以后可以轻松地更改它们。例如: left join dbo.rosk_crm_08012017_data b on a.idclient=b.idclient 稍后将更改为: left join dbo.rosk_crm_15012017_data b on a.idclient=b.idclient 我尝试过局部变量(实际上不允许用于名称定义): 如果要创建新语句,可以尝试: DECLARE @lastName varchar(

我需要定义脚本中使用的对象的名称,以便以后可以轻松地更改它们。例如:

left join dbo.rosk_crm_08012017_data b     on a.idclient=b.idclient
稍后将更改为:

left join dbo.rosk_crm_15012017_data b     on a.idclient=b.idclient
我尝试过局部变量(实际上不允许用于名称定义):


如果要创建新语句,可以尝试:

    DECLARE @lastName varchar(10), @firstName varchar(10),@sql VARCHAR(max);  
    SET @lastName = '15012017';
    SET @firstName = '08012017';  
    SET @sql='select
    ...left join dbo.rosk_crm_'+@lastName+'_data  b on a.idclient=b.idclient'
    EXEC(@sql)

同义词或SQLCmd变量。签出动态SQLCmd是否要更改现有语句或创建一个可以接受可变表名的新语句?谢谢大家的回答。我计划检查同义词和动态SQL,Nolan Shang决策工作正常。是否可以定义一个日期列表(例如:19122016、261220016、01012017、08012017),每对日期将被选择为“第一个日期”和“第二个日期”来执行脚本?诺兰,太好了!非常感谢。
    DECLARE @lastName varchar(10), @firstName varchar(10),@sql VARCHAR(max);  
    SET @lastName = '15012017';
    SET @firstName = '08012017';  
    SET @sql='select
    ...left join dbo.rosk_crm_'+@lastName+'_data  b on a.idclient=b.idclient'
    EXEC(@sql)