如何连接变量和字符串作为表名
问题描述:
是否可以将sting连接到变量作为表名。如何连接变量和字符串作为表名
例如
DECLARE @ENTITY VARCHAR(50)
SET @ENTITY = 'NATURAL'
SELECT *
INTO @ENTITY+'_COMPLETENESS_NAME'
FROM TABLE1
,因为我想创建一个表的结果,我目前使用的MS SQL Server 2014
答
命名[NATURAL_COMPLETENESS_NAME]
你需要使用动态SQL:
DECLARE @sql NVARCHAR(max);
SET @sql = '
SELECT *
INTO ' + @ENTITY + '_COMPLETENESS_NAME
FROM TABLE1';
EXEC sp_executesql @sql;
注意:您无法使用表名称的参数,因为您无法使用表,列,模式或数据库标识符的参数。为了安全起见,您可能需要使用:
SET @sql = '
SELECT *
INTO ' + QUOTENAME(@ENTITY + '_COMPLETENESS_NAME') +
FROM TABLE1';
这会保护你,如果@ENTITY
有着不同寻常的人物。
答
试试这个:
DECLARE @ENTITY VARCHAR(50)
SET @ENTITY = 'NATURAL'
EXEC ('SELECT * INTO '+ @ENTITY + '_COMPLETENESS_NAME FROM TABLE1')