我想将数据从一个表插入到另一个表中。我正在使用Select * into命令。但是,我的表名将动态生成,如下所示 -
DECLARE @Name VARCHAR(50)
SET @Name = 'DimCategory'+CAST(GetDate() as Varchar(50))
select * into @Name from DimCategory
这给了我错误
Msg 102, Level 15, State 1, Line 7 Incorrect syntax near 'DimCategory'.
即使以下声明也不起作用。
select * into 'DimCategory' + CAST(GetDate() as Varchar(50)) from DimCategory
当我们使用
时,是否应该对表名进行硬编码SELECT * INTO NEWTABLE_NAME FROM TABLE_NAME.
或者我错过了什么?
答案 0 :(得分:1)
我想,您使用的是Sql Server
。
您的代码需要动态SQL,如下所示:
DECLARE @Name VARCHAR(50)
SET @Name = 'DimCategory'+CAST(GetDate() as Varchar(50))
DECLARE @sql = nvarchar(400)
SET @sql = N'select * into ' + QUOTENAME(@Name) + ' from DimCategory'
EXEC sp_executesql @sql