2017-02-13 4 views
-1

あるテーブルから別のテーブルにデータを挿入したい。 Select *をコマンドに使用しています。以下に示すようにしかし、私のテーブル名を動的に生成されようとしている - これが私のtablenameからcustomtablenameに*を選択

Msg 102, Level 15, State 1, Line 7 Incorrect syntax near 'DimCategory'. 

でも、次の文が動作しないというエラーを出します

DECLARE @Name VARCHAR(50) 

SET @Name = 'DimCategory'+CAST(GetDate() as Varchar(50)) 

select * into @Name from DimCategory 

。それは、テーブル名が、我々は

SELECT * INTO NEWTABLE_NAME FROM TABLE_NAME. 

を使用する場合、ハードコーディングする必要がありますまたは私はここで何かを逃していた場合

select * into 'DimCategory' + CAST(GetDate() as Varchar(50)) from DimCategory 

ですか?

+1

タグの適切なRDBMS ... SQL-Serverの:

あなたのコードは次のように、動的SQLを必要ですか? –

答えて

1

Sql Serverとします。

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 
+0

SQL2012にタグが付けられているので、 'QUOTENAME(@Name)'を含めることをお勧めします。 – Jens

+0

Worked。多くのありがとう:) –

+0

@ジェンス:私の答えを更新します –

関連する問題