2016-08-24 92 views
1

是否可以將sting連接到變量作爲表名。如何連接變量和字符串作爲表名

例如

DECLARE @ENTITY VARCHAR(50) 
SET @ENTITY = 'NATURAL' 

SELECT * 
INTO @ENTITY+'_COMPLETENESS_NAME' 
FROM TABLE1 

,因爲我想創建一個表的結果,我目前使用的MS SQL Server 2014

回答

4

命名[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有着不同尋常的人物。

2

試試這個:

DECLARE @ENTITY VARCHAR(50) 
SET @ENTITY = 'NATURAL' 

EXEC ('SELECT * INTO '+ @ENTITY + '_COMPLETENESS_NAME FROM TABLE1') 
相關問題