sql-server - 我可以在变量后命名表名的一部分吗?
问题描述
是否可以创建一个包含声明变量的一部分并将其与表名等连接的表?
像下面?
如果我的问题措辞错误,我深表歉意。
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
解决方案
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)