2016-03-10 24 views
1

我願做這樣的事情在SQL Server:插入到所選表名

INSERT INTO(Here I have SELECT which return Table name) (col1, col2, col3) 
VALUES (a, b, c) 

我使用Select語句建表的名字,我想一些值插入此表。

可以嗎?

回答

1

你可以用動態SQL

declare @table varchar(100),@sqlst varchar(max) 
select @table=tablename from tables 

set @sqlst ='insert into '+ @table +'(1,2,3) values(''a'',''b'',''c'')' 

exec(@sqlst) 
+0

我看到,我影響你的編輯做;) – DhruvJoshi

+0

QUOTENAME ,schemaname,表列表中多行的歧義 –

0

你可以像下面

DECLARE @Q nvarchar(MAX) 

SELECT @Q=N'INSERT INTO '+ tablename +N' (1,2,3) values(''a'',''b'',''c'')' FROM SomeTable 

EXEC(@Q) 

請注意,由於像一個字母數字值通過動態查詢這麼做,B,C需要用單引號插入,你必須逃脫單引號另一個報價