首页 > 解决方案 > 我可以在变量后命名表名的一部分吗?

问题描述

是否可以创建一个包含声明变量的一部分并将其与表名等连接的表?

像下面?

如果我的问题措辞错误,我深表歉意。


Declare @year int


set @year = 2019


CREATE TABLE tab_@Year 
(  
Field1 nvarchar(50),  
Field2 datetime,   
Field3 datetime,  
Field4 nvarchar(50),   
Field5 nvarchar(15)  
)    

insert into tab_@Year   

"select statement goes here"

select *    from tab_@year

编辑* 我遗漏了我的最终结果,所以我会寻找在上述场景中创建的表,称为

tab_2019

标签: sql-server

解决方案


Declare @year varchar(225)
Declare @q nvarchar(1000)
Declare @q2 nvarchar(1000)
set @year = 2020
set @q='CREATE TABLE tab_'+@Year+'
(  
Field1 nvarchar(50),  
Field2 datetime,   
Field3 datetime,  
Field4 nvarchar(50),   
Field5 nvarchar(15)  
)'
exec (@q)

set @q2='insert into tab_'+@Year+' values (1,1,1,1,1)'
exec (@q2)

推荐阅读